Sub*_*bin 42 html javascript string parsing
我有一个名为Paul Steve Panakkal的用户.这是一个很长的名称,它不适合div容器.所以无论如何使用javascript或jquery从中分割出名字和姓氏.
该名称是从PHP获得的JavaScript变量.然后使用JS将其拆分.
Dan*_*sky 103
你应该使用split方法:
'Paul Steve Panakkal'.split(' '); // retutrns ["Paul", "Steve", "Panakkal"]
Run Code Online (Sandbox Code Playgroud)
你可以这样使用它:
'Paul Steve Panakkal'.split(' ').slice(0, -1).join(' '); // returns "Paul Steve"
'Paul Steve Panakkal'.split(' ').slice(-1).join(' '); // returns "Panakkal"
Run Code Online (Sandbox Code Playgroud)
所以共同点:
var firstName = fullName.split(' ').slice(0, -1).join(' ');
var lastName = fullName.split(' ').slice(-1).join(' ');
Run Code Online (Sandbox Code Playgroud)
Dav*_*mas 36
是:
var fullName = "Paul Steve Panakkal".split(' '),
firstName = fullName[0],
lastName = fullName[fullName.length - 1];
Run Code Online (Sandbox Code Playgroud)
参考文献:
Pav*_*lov 16
最常见的解决方案,我们总是将第一个单词作为名字,其余的作为姓氏:
const splitName = (name = '') => {
const [firstName, ...lastName] = name.split(' ').filter(Boolean);
return {
firstName: firstName,
lastName: lastName.join(' ')
}
}
console.log(splitName('Jon Snow'));
console.log(splitName(' Jon '));
console.log(splitName(' Jon The White Wolf '));Run Code Online (Sandbox Code Playgroud)
abu*_*uba 12
我想,是时候开始使用正则表达式了:)
"Paul Steve Panakkal".split(/(\s).+\s/).join("") // "Paul Panakkal"
Run Code Online (Sandbox Code Playgroud)
在西班牙语中它可能很棘手,因为你可能有第二个可选名称甚至复杂的姓氏,如"del Bosque"或"de la Hoya",带有重音符号的元音和ñ.下面的javascript可以解析一个完整的西班牙语名称,在计算你正在写它尊重大小写的情况.它将返回一个json给你
代码是:
function parseName(input) {
var fullName = input || "";
var result = {};
if (fullName.length > 0) {
var nameTokens = fullName.match(/[A-ZÁ-ÚÑÜ][a-zá-úñü]+|([aeodlsz]+\s+)+[A-ZÁ-ÚÑÜ][a-zá-úñü]+/g) || [];
if (nameTokens.length > 3) {
result.name = nameTokens.slice(0, 2).join(' ');
} else {
result.name = nameTokens.slice(0, 1).join(' ');
}
if (nameTokens.length > 2) {
result.lastName = nameTokens.slice(-2, -1).join(' ');
result.secondLastName = nameTokens.slice(-1).join(' ');
} else {
result.lastName = nameTokens.slice(-1).join(' ');
result.secondLastName = "";
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
如果要指定第二个名称,则需要姓氏.尝试一下:
即使尝试复杂的喜欢
评论您的经历.