regex 返回字符串中每个单词的首字符

pu82cl6c  于 2022-11-26  发布在  其他
关注(0)|答案(7)|浏览(125)

我有一个带有名称的字符串,我想把它们转换成缩写。例如:

  • 约翰·白色-〉JW
  • 约翰·P·白色

我正在寻找一个关于如何最好地做到这一点的建议。我已经使用split()进行了研究,并在这里查看了http://www.w3schools.com/jsref/jsref_split.asp,但在我不知道要查找的字符时,没有找到一个关于如何定位并返回第一个字母的好例子。
我的字符串看起来像这样

<a href="#">John White</a>

我想把它改成这个

<a href="#">JW</a>

需要帮忙吗?谢谢

iqih9akk

iqih9akk1#

我建议您使用RegExp,这里有一个Example

var myStr = "John P White";
var matches = myStr.match(/\b(\w)/g);
console.log(matches.join(''));

\bAssert位于字边界的位置(^\w|\w$|\W\w|\w\W)
第一捕获组(\w
\w匹配任意单词字符(等于[a-zA-Z0-9_]
全局模式标志
g修饰符:全局。所有匹配项(第一个匹配项后不返回)
如需更详细的说明,请造访here

rlcwz9us

rlcwz9us2#

var name = "John P White";

function initials(value){
    var result = "";
    var tokens = value.split(/\s/);
    for(var i =0; i < tokens.length; i++){
      result += tokens[i].substring(0,1).toUpperCase();
    }
    return result;
}

initials(name);
oxf4rvwz

oxf4rvwz3#

您可以:

var words = $('a').text().split(' ');
var text = '';
$.each(words, function () {
    text +=  this.substring(0, 1);
});
$('a').text(text);

jtw3ybtb

jtw3ybtb4#

您可以执行以下操作:

var name = "John P White",
    data = name.split(' '), output = "";

for ( var i = 0; i < data.length; i++) {
    output += data[i].substring(0,1);
}

alert(output);

Demo

7ivaypg9

7ivaypg95#

使用space作为分隔符,您可以拆分名称并将其放入Array中。然后您可以获取Array中每个元素的第一个索引。

odopli94

odopli946#

您可以使用正则表达式来匹配任何非大写字母,然后简单地删除它。

<a href="#">John White</a>
<a href="#">John P Brown</a>

$('a').each(function(){
    var initials = $(this).text().replace(/[^A-Z]/g, "");
    $(this).text(initials);
});

neskvpey

neskvpey7#

请在下面找到答案

const fullName='Krishna Kavoor';
fullName.split(' ').map(word=>word[0]).join('');

相关问题