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 的现有功能工具箱也可以在处理字符串时缩短大写任务。 这主要归功于正则表达式的强大功能,因为没有它们,这些代码示例会更长。