提问人:Cornie Loots 提问时间:12/14/2022 最后编辑:Atena DadkhahCornie Loots 更新时间:12/18/2022 访问量:343
Javascript 拆分切片连接字符串
Javascript split slice join string
问:
我在这个问题上有点挣扎。
我有一个字符串“Jan van Wyk”。“Jan”是名字,“van Wyk”是姓氏。
let enqBy = "Jan van Wyk";
var firstName = enqBy.split(' ').slice(0, -1).join(' ');
var lastName = enqBy.split(' ').slice(-1).join(' ');
console.log(firstName);
console.log(lastName);
使用此代码,结果是,这不是我想要的。firstname = "Jan van"
lastname = "Wyk"
如果我有一个像“Elvis Presly”这样的字符串,代码可以完美地工作,并且.firstname = "Elvis"
lastname = "Presley"
请指导我。
答:
0赞
Edu
12/14/2022
#1
正如您在问题中所说: "Jan" is the firstname and "van Wyk" is the lastname.
然后,您要为firstname选择第一项,为lastname选择其余项,此代码将执行以下操作:
const [firstname, ...rest] = enqBy.split(' ')
const lastname = rest.join(' ')
0赞
Charles Kasasira
12/14/2022
#2
你的代码似乎在我这边工作,希望我能很好地回答你的问题,但只是在拆分后将名字调整为第一个字符串,并用空格连接最后两个字符串。
const enqBy = "Jan van Wyk"
var firstName = enqBy.split(' ')[0];
var lastName = enqBy.split(' ').slice(1).join(' ');
console.log(firstName)
console.log(lastName)
// Output
// "Jan"
// "van Wyk"
0赞
Maryam Moshtoofar
12/14/2022
#3
在下面使用此代码。这也适用于像“Elvis Presly”这样只有一个单词的名字。
var enqBy = "Jan van Wyk";
var firstName = enqBy.split(" ").slice(0, 1).join(" ");
var lastName = enqBy.split(" ").slice(1).join(" ");
0赞
Surya R Praveen
12/14/2022
#4
要获取句子的名字,请使用空格获取拆分,然后获取姓氏,获取句子和切片的长度。
let abc = "Praveen Ash Surya"
var fname = abc.split(' ', 1).join(' ');
var lname = abc.split(' ', abc.length).slice(1).join(' ');
console.log(fname);
console.log(lname);
拆分可以与分隔符和限制符一起使用
lastname.split(seperator, ?limit)
0赞
Atena Dadkhah
12/14/2022
#5
您可以尝试以下代码:
const fullName = "Jan van Wyk"
const regex = /^(\w+\s)(.*)$/g
const matches = regex.exec(fullName)
matches.shift() // remove first value which is the fullName
const [firstName, lastName] = matches
console.log(firstName.trim()) // Jan
console.log(lastName.trim()) // van Wyk
此正则表达式匹配的第一组是名称(一些字母 + 空格),第二组是 fullName 的其余部分。
评论
s.replace(' ','_').split('_')
??Jan van
Wyck
Jan Wellem van Wyk
Karl-Theodor Maria von und zu Wick