Нечувствительные к регистру строковые операции в es2018 - PullRequest
0 голосов
/ 10 октября 2018

У нас есть несколько собственных методов, предоставляемых объектом String в JavaScript:

Все они чувствительны к регистру.

Когда речь идет об операциях без учета регистра, у нас есть несколько популярных вариантов, хотя все они далеки от идеальных.

toUpperCase() \ toLowerCase()

Самым популярным приемом является использование toUpperCase() \ toLowerCase() методов.Однако они не работают должным образом для всех языков (немецкий, турецкий и т. Д.) И имеют снижение производительности при преобразовании обеих строк, даже если результат операции можно узнать, посмотрев на первую пару символов.

RegEx es

Второй вариант - использовать RegEx es с i.Тем не менее, он также имеет два основных недостатка:

  • нечеткий и грязный код (как это почти всегда имеет место с RegEx es)
  • накладные расходы производительности, вызванные составлением RegExстрока и компиляция ее в фактические RegEx для каждой операции

Кроме того, эти решения были «изобретены» во времена древних виртуальных машин JavaScript.В настоящее время с Intl (и другими более новыми) API и транспиляторами, такими как TypeScript и Babel, а также с библиотеками polyfill, такими как core-js, мы можем легко использовать новейшие JavaScript API для любого приложения.

Какое решение для случаянечувствительный String операции в es2018?

Я ищу качественный, производительный (думаю, MDN polyfills) качественный и дружественный к i18n код, предназначенный для универсального решения проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...