javascript正则表达式,拆分用户的全名

Ily*_*lya 5 javascript regex

我在一个字符串中有用户的名字和姓氏,例如
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)

http://jsfiddle.net/YyCKx/
任何想法?

dfs*_*fsq 9

使用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)