我在一个字符串中有用户的名字和姓氏,例如
John Doe
Peter Smithon
现在我想把这个字符串转换为两个字符串 - firstname和lastname
John Doe- > first = John,last = Doe
John- > first = John,last =""
[space]Doe- > first ="",last = Doe.
我正在使用下一个代码
var fullname = "john Doe"
var last = fullname.replace(/^.*\s/, "").toUpperCase().trim(); // john
var first = fullname.replace(/\s.*$/, "").toUpperCase().trim(); // Doe
Run Code Online (Sandbox Code Playgroud)
这适用于双字全名.但如果全名有一个字,那我就有问题了
var fullname = "john"
var last = fullname.replace(/^.*\s/, "").toUpperCase().trim(); // john
var first = fullname.replace(/\s.*$/, "").toUpperCase().trim(); // john
Run Code Online (Sandbox Code Playgroud)
使用split + shift方法.
var parts = "Thomas Mann".split(" "),
first = parts.shift(),
last = parts.shift() || "";
Run Code Online (Sandbox Code Playgroud)
所以在单个单词名称的情况下,它会给你预期的结果:
last = "";
Run Code Online (Sandbox Code Playgroud)