在 JavaScript 中获取字符串中每个单词的首字母
Get first letter of each Word in a String in JavaScript
要获取字符串中每个单词的第一个字母:
- 使用该
String.split()
方法将字符串拆分为单词数组。 - 使用该
map()
方法遍历数组并获取每个首字母。 - 使用该
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
这是一个两步过程:
- 使用该
String.match()
方法获取字符串中第一个字母的数组。 - 使用该
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()
方法,因为我发现它更具可读性。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: