在 JavaScript 中获取字符串中每个单词的首字母

在 JavaScript 中获取字符串中每个单词的首字母

Get first letter of each Word in a String in JavaScript

要获取字符串中每个单词的第一个字母:

  1. 使用该String.split()方法将字符串拆分为单词数组。
  2. 使用该map()方法遍历数组并获取每个首字母。
  3. 使用该Array.join()方法将数组连接成一个字符串。
索引.js
function getFirstLetters(str) { const firstLetters = str .split(' ') .map(word => word.charAt(0)) .join(''); return firstLetters; } // 👇️ ABC console.log(getFirstLetters('Alice, Bob, Charlie')); // 👇️ BHC console.log(getFirstLetters('Bobby Hadz Com.'));

我们使用
String.split()将字符串拆分为单词数组。

索引.js
// 👇️ ['Hello', 'world'] console.log('Hello world'.split(' '));

我们传递给Array.map()方法的函数

会针对数组中的每个元素进行调用。

map()方法返回一个新数组,其中包含从回调函数返回的值。

在这种情况下,数组包含每个单词的第一个字母。

索引.js
// 👇️ ['H', 'w'] console.log('Hello world'.split(' ').map(word => word.charAt(0)));

最后一步是使用
Array.join()方法将数组连接成一个字符串。

索引.js
console.log( 'Hello world' .split(' ') .map(word => word.charAt(0)) .join(''), ); // 👉️ "Hw" console.log( 'Hello world' .split(' ') .map(word => word.charAt(0)) .join(' '), ); // 👉️ "H w"

Array.join()方法使用分隔符连接数组中的所有元素。

该方法采用的唯一参数Array.join()separator– 用于分隔数组元素的字符串。

如果separator参数设置为空字符串,则数组元素之间没有任何字符连接。

或者,您可以使用该String.match()方法。

获取字符串中每个单词的首字母使用String.match

这是一个两步过程:

  1. 使用该String.match()方法获取字符串中第一个字母的数组。
  2. 使用该Array.join()方法将数组连接成一个字符串。
索引.js
function getFirstLetters(str) { const firstLetters = str.match(/\b\w/g).join(''); return firstLetters; } // 👇️ ABC console.log(getFirstLetters('Alice, Bob, Charlie')); // 👇️ BHC console.log(getFirstLetters('Bobby Hadz Com.'));

String.match方法字符串与正则表达式进行匹配。

该方法返回一个包含匹配项(如果有)或未null找到匹配项的数组。

索引.js
// 👇️ [ 'A', 'B', 'C' ] console.log('Alice, Bob, Charlie'.match(/\b\w/g)); // 👇️ [ 'B', 'h', 'c' ] console.log('Bobby hadz com'.match(/\b\w/g));

我们向该String.match方法传递了一个正则表达式。

正斜杠标记/ /正则表达式的开始和结束。

\b字符与单词边界匹配 – 单词字符后面或前面没有另一个单词字符的位置。

我们使用\b字符来匹配字符串开头的字符(前面没有任何内容)或前面有空格的字符。

特殊字符\w匹配拉丁字符[a-zA-Z]、数字[0-9]
和下划线
_

我们使用该g标志是因为我们想要匹配所有出现的第一个字符,而不仅仅是第一次出现的字符。

最后一步是使用该Array.join()方法将数组连接成一个字符串。

索引.js
// 👇️ ABC console.log('Alice, Bob, Charlie'.match(/\b\w/g).join('')); // 👇️ Bhc console.log('Bobby hadz com'.match(/\b\w/g).join(''));

您选择哪种方法是个人喜好的问题。我会使用
split()andmap()方法,因为我发现它更具可读性。

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: