如何用多个空格分割名称字符串?

我想对名字和姓氏进行排序,我的问题是当用户有多个名字时,例如:

'Michael Jordan Atticus Smith'

基本上,史密斯是那里的姓氏,我如何用它分割名字和姓氏?我想要的结果是:

'Michael Jordan Atticus' 'Smith'



凤凰求蛊
浏览 81回答 1
1回答

慕的地10843

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 个名称。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript