es2018中不区分大小写的字符串操作

时间:2018-10-09 22:13:51

标签: javascript string case-insensitive

我们有String对象在JavaScript中提供的多种本地方法:

它们都是区分大小写的。

对于不区分大小写的操作,我们提供了一些流行的选项,尽管它们都不是理想选择。

toUpperCase() \ toLowerCase()

最流行的技巧是使用toUpperCase() \ toLowerCase()方法。但是,它们不能在所有语言(德语,土耳其语等)上正常工作,并且即使通过查看第一对字符即可知道操作结果,也可能会转换两个字符串的性能。

RegEx

第二个选项是将RegExi选项一起使用。但是,它也有两个主要缺点:

  • 不清楚和混乱的代码(因为它几乎总是 RegEx es)
  • 在每个操作中组成一个RegEx字符串并将其编译为实际的RegEx会导致性能开销

此外,这些解决方案是在古代JavaScript VM时代“发明”的。如今,有了Intl(以及其他较新的)API和诸如TypeScript和Babel之类的编译器以及诸如core-js这样的polyfill库,我们可以轻松地为任何应用程序使用最新的JavaScript API。

es2018中不区分大小写的String操作的解决方案是什么?

我正在寻找生产(认为MDN polyfills)质量优良的i18n友好代码,该代码旨在作为解决该问题的通用解决方案。

0 个答案:

没有答案