在 JavaScript 中将字符串转换为标题大小写
Convert a String to Title Case in JavaScript
使用该String.replace()
方法将字符串转换为首字母大写。
该replace()
方法会将字符串中每个单词的首字母转换为大写。
索引.js
function getTitleCase(str) { return str.replace(/\w\S*/g, word => { return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase(); }); } // 👇️ "One, Two, Three" console.log(getTitleCase('one, two, three'));
如果您想避免使用正则表达式,请向下滚动到下一个代码片段。
我们将以下 2 个参数传递给
String.replace
方法:
- 匹配字符串中每个单词的正则表达式
- 每次匹配时调用并返回替换的函数
正斜杠
/ /
标记正则表达式的开始和结束。\w
特殊字符匹配拉丁字符、[a-zA-Z]
数字[0-9]
和下划线_
。
该\S
字符匹配除空格以外的任何单个字符。
\w\S
中匹配one
的组合one two
。
星号*
字符匹配前面的项目(一个词)0
或多次。
我们使用了
g
(global) 标志,因为我们想要匹配字符串中出现的所有以空格分隔的单词。如果您在阅读正则表达式时需要帮助,请查看
来自 MDN的正则表达式速查表。
每个单词都传递给函数,我们将第一个字符转换为大写,其余字符转换为小写。
索引在 JavaScript 中是从零开始的,这意味着字符串中的第一个字符的索引为
0
,最后一个字符的索引为. string.length - 1
该函数的返回值用作字符串中每个匹配项(单词)的替换。通过将每个单词转换为首字母大写,我们得到一个首字母大写的字符串。
或者,您可以使用该String.split()
方法。
使用 String.split() 将字符串转换为首字母大写
将字符串转换为标题大小写:
- 使用 方法将字符串拆分为单词数组
split()
。 - 使用该
map()
方法将每个单词转换为标题大小写。 - 使用该
join()
方法将单词连接成一个字符串。
索引.js
function getTitleCase(str) { return str .split(' ') .map(word => { return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase(); }) .join(' '); } // 👇️ "One, Two, Three" console.log(getTitleCase('one, two, three'));
我们使用
String.split
方法获取字符串中单词的数组。
我们传递给该方法的参数是应该拆分字符串的字符。
我们想将字符串拆分成一个单词数组,所以我们使用了一个包含空格的字符串作为分隔符。
索引.js
// 👇️ ['one', 'two', 'three'] console.log('one, two, three'.split(' '));
下一步是使用
Array.map
方法迭代数组。
我们传递给 map 方法的函数被数组中的每个元素(单词)调用。
我们将每个单词的第一个字符大写,其余小写。
最后一步是使用
Array.join
方法将字符串数组连接成一个带有空格分隔符的字符串。
这是一个 3 步过程:
- 在每个空格上拆分字符串。
- 标题大小写数组中的每个单词。
- 用空格分隔符连接单词。