我想对名字和姓氏进行排序,我的问题是当用户有多个名字时,例如:'Michael Jordan Atticus Smith'基本上,史密斯是那里的姓氏,我如何用它分割名字和姓氏?我想要的结果是:'Michael Jordan Atticus' 'Smith'
1 回答
慕的地10843
TA贡献1785条经验 获得超8个赞
let str = 'Michael Jordan Atticus Smith';
console.log( ex1(str) );
console.log( ex2(str) );
console.log( ex3(str) );
function ex1(str) {
let names = str.match(/(.*?)\s(\S+)$/); // (1)
return [ names[1], names[2] ];
}
function ex2(str) {
let names = str.split(" ");
return [names.pop(), names.join(" ")].reverse(); // (2)
}
function ex3(str) {
let last = ""
str = str.replace(/\s(\S+)$/, function(full_match, parenthesis_1) {
last = parenthesis_1;
return "";
});
return [str, last];
}
(1) match()
返回匹配字符串的数组。另外,请参阅RegEx 小抄表
(2)数组pop()
方法移除,并返回最后一个元素。代码从左到右执行,因此,第二个names.join(" ")
收集了左边的 3 个名称。
添加回答
举报
0/150
提交
取消