JavaScript中的字符串大写

来自菜鸟教程
跳转至:导航、​搜索

我喜欢 JavaScript,但与 PHP 相比,它缺少内置的字符串操作。 当然,您可以为您的字符串操作需求引入第三方依赖项,但通常这比您在应用程序中想要的要大得多。

尽管 JavaScript 缺少内置的好东西,但它仍然具有足够多的功能,可以轻松处理大写任务。

入门

由于我们将使用纯 JavaScript,因此无需安装任何其他内容。 事实上,您可以在浏览器的控制台或通过 Node.js REPL 轻松跟随!

如何将整个字符串大写

这很容易,可能已经是您已经知道的事情了。 要大写整个字符串,只需在字符串上调用 .toUpperCase()

let myString = 'alligator';
myString.toUpperCase();

这会将小写字符串转换为大写,ALLIGATOR

这甚至可以用于混合大小写的字符串:

myString = 'AlliGator';
myString.toUpperCase();

结果相同,字符串变为 ALLIGATOR

如何将字符串的第一个字母大写

好的,所以第一个很容易,事情很快就会变得更加复杂。

因为 String 原型上没有内置方法将字符串的第一个字母大写,所以我们必须有点创意。

事情的要点是,我们将需要抓住字符串的第一个字母,将其大写,然后抓住字符串的其余部分,然后重新组装。

幸运的是,我们不必逐个执行这些步骤,只需使用正则表达式获取第一个字母并将其大写,然后返回修改后的字符串:

myString = 'the quick green alligator...';
myString.replace(/^\w/, (c) => c.toUpperCase());

这将导致字符串变为 The quick green alligator...

只要您的字符串前面没有任何空格填充,这很好。

如果您不确定是否会遇到上述填充,例如在处理用户生成内容的不一致时,您可以包含 .trim() 方法在大写之前清理内容:

myString = '    the quick green alligator...';
myString.trim().replace(/^\w/, (c) => c.toUpperCase());

如何将字符串中每个单词的首字母大写

与将字符串的首字母大写类似,JavaScript 中没有任何内容可以将字符串中每个单词的首字母大写,也称为标题大小写。

我们也需要采取类似的方法,字符串需要分解成单词,每个单词都需要大写,然后在它们之间用空格重新组合。

我们可以通过使用 .split().join() 来解决这个问题,并将之前的大写正则表达式夹在两者之间。

或者,我们可以通过简单地添加另一个正则表达式来解决它:

myString = 'the quick green alligator...';
myString.replace(/\w\S*/g, (w) => (w.replace(/^\w/, (c) => c.toUpperCase())));

会给我们The Quick Green Alligator...

因为我们将单词本身隔离开来,所以这种方法在处理间距时更具容错性。 但是,如果您不想在结果字符串中说填充,您可能仍然希望 trim() 字符串。

如果您正在处理一个包含 MiXeD CaSe 单词的字符串,您可能还希望包含对 .toLowerCase() 的调用以使事情保持一致。

myString = '  tHE QuICk GrEEn alliGATOR...  ';
myString.trim().toLowerCase().replace(/\w\S*/g, (w) => (w.replace(/^\w/, (c) => c.toUpperCase())));

仍然得到我们 The Quick Green Alligator...

当然,这也会使字符串中的任何首字母缩略词小写,因此您的里程可能会有所不同!

结论

即使没有额外的实用方法,JavaScript 的现有功能工具箱也可以在处理字符串时缩短大写任务。 这主要归功于正则表达式的强大功能,因为没有它们,这些代码示例会更长。