Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //input --> Hamza Khan
- ProcessFullName(full_name): Object {
- var Obj = {
- FirstName: "",
- LastName: "",
- MiddleName: ""
- };
- var splitName = full_name.split(" ");
- if (splitName.length>0) {
- switch (splitName.length) {
- case 1:
- Obj.FirstName = splitName[0];
- break;
- case 2:
- Obj.FirstName = splitName[0];
- Obj.LastName = splitName[1];
- break;
- case 3:
- Obj.FirstName = splitName[0];
- Obj.MiddleName = splitName[1];
- Obj.LastName = splitName[2];
- break;
- }
- }
- return Obj;
- } //Output --> { FirstName: "Hamza", LastName: "Khan", MiddleName: "" }
- interface SplitNameData { // Does anybody have a better interface name?
- FirstName: string;
- MiddleName: string;
- LastName: string;
- }
- ProcessFullName(full_name: string): SplitNameData {
- const Obj: SplitNameData = {
- firstName: '',
- middleName: '',
- lastName: ''
- };
- case 2:
- [Obj.FirstName, Obj.LastName] = splitName;
- break;
- case 3:
- [Obj.FirstName, Obj.MiddleName, Obj.LastName] = splitName;
- break;
- const NAME_PATTERN = /^(?<firstName>[^ ]*) ((?<middleName>[^ ]*) )?(?<lastName>[^ ]*)$/;
- const emptyNameData = {
- firstName: '', middleName: '', lastName: ''
- };
- const {
- groups: {
- firstName,
- middleName = '',
- lastName
- } = emptyNameData
- } = NAME_PATTERN.exec(fullName) || {};
- alert([firstName, middleName, lastName]);
- ProcessFullName(fullName): Object {
- const names = fullName.split(" ");
- const vet = name => name ? name : "";
- return {
- first: vet(names.shift()),
- last: vet(names.pop()),
- middle: vet(names.join(" "))
- };
- }
Add Comment
Please, Sign In to add comment