Javascript 当字符串中有空格时如何使用substring()
我有一个字符串,其中包含一个人的名字和姓氏,例如Javascript 当字符串中有空格时如何使用substring(),javascript,Javascript,我有一个字符串,其中包含一个人的名字和姓氏,例如johndoe。我想将此字符串转换为John D.通常,我只会在last name变量上使用substring(0,1),但是当名字和姓氏是一个字符串,中间有空格时,如何实现这一点呢?您可以使用string.split(“”): 注意:这只适用于名字和姓氏,没有中间名的情况。使用split()获取姓氏 var fullName = "John Doe"; var names= fullName .split(" "); var shortFullN
johndoe
。我想将此字符串转换为John D.
通常,我只会在last name变量上使用substring(0,1)
,但是当名字和姓氏是一个字符串,中间有空格时,如何实现这一点呢?您可以使用string.split(“”):
注意:这只适用于名字和姓氏,没有中间名的情况。使用split()
获取姓氏
var fullName = "John Doe";
var names= fullName .split(" ");
var shortFullName=names[0]+" "+names[1].substring(0,1)+".";
alert(shortFullName);
您可以使用match
console.log('johndoe.match(/(.*)/)[0]+');
log('John Frank Doe'.match(/(.*)/)[0]+')代码>您可以通过按空格分隔姓名并修改姓氏来完成此操作
var name = "John Doe"; // store the name
var nameParts = name.split(" "); // split the name by spaces
var lastName = nameParts[nameParts.length - 1]; // get the last name
lastName = lastName.substring(0, 1) + "."; // replace the last name with the first letter and a full stop
nameParts[nameParts.length - 1] = lastName; // insert the last name back into the array of names at the end
name = nameParts.join(" "); // join the names back together with their original spaces
console.log(name); // gives "John D."
这也满足了问题注释中讨论的名称John Frank Doe
,在这种情况下,将给出John Frank D.
。您可以通过拆分返回一个数组,该数组由上述字符串内容组成,由空格分隔,然后通过子字符串对其进行操作:
var name = "first last";
var firstLast = name.Split(" ");
alert(firstLast[0] + " " + firstLast[1].substring(0,1));//
“约翰·D。”
您可以使用string.lastIndexOf()
var fullname=“John Frank Doe”;
var result=fullname.substring(0,fullname.lastIndexOf(“”+2)+”;
console.log(result)
我建议使用字符串。将替换为regex/(\S)\S*\S*$/
:
"John Doe".replace(/ (\S)\S*\s*$/, ' $1.'); // John D.
示例:
- 约翰·弗兰克·多伊⇒ 约翰·弗兰克D
- 彼得P⇒ 彼得P
- K⇒ K
- 彼得·奥尼尔⇒ 彼得O
- 阿尔夫肯·斯特林⇒ ÜlfkenÖ
var名称=[
“约翰·康姆”,
“苏珊·安东尼·克莱因”,
“Elise R.Johann”,
“西蒙·R·K.”,
“彼得P”,
“彼得”,
“P”,
“彼得·奥尼尔”,
“唐纳德·麦金太尔”,
“Beween中的John空白”,
“结尾处的约翰空白”,
“约翰·拉贝和雷纳·里尔克”,
“厄尔夫肯•斯特林”
],
shorten=name=>name.replace(/(\S)\S*\S*$/,“$1”);
对于(名称名称)console.log(缩写(名称))代码>John Frank Doe的预期输出是什么?你还可以分享一下你试过什么吗?不应该有中间名,但在这种情况下应该是John Frank D。如果姓氏是MacDonald、McDonald或O'Neil怎么办@AndrewTruckle想起来了,我不确定它们通常是如何格式化为首字母的。麦克唐纳到M?MacD?MD?谢谢,我可以改用这种方法。如果我这样做了,我会把它标记为答案。
var a = 'John Doe';
var b = a.split(' ');
var c = b[0] + ' ' + b[1].substring(0,1) + '.';
"John Doe".replace(/ (\S)\S*\s*$/, ' $1.'); // John D.