Дополнительно
Содержит нечувствительные к регистру слова
У меня есть следующее:
if (referrer.indexOf("Ral") == -1) { ... }
Я хочу сделать Ral
нечувствительным к регистру, чтобы он мог быть RAl
, rAl
и т.д. и все равно совпадал.
Есть ли способ сказать, что Ral
должен быть нечувствительным к регистру?
384
12
Добавьте
.toLowerCase()
послеreferrer
. Этот метод превращает строку в строку в нижнем регистре. Затем используйте.indexOf()
, используяral
вместоRal
.Того же самого можно добиться и с помощью регулярного выражения (особенно полезно, когда требуется проверка на динамические шаблоны):
Другой вариант заключается в использовании метода поиска как следовать:
Это выглядит более элегантно, затем преобразовать всю строку в нижний регистр и может быть более эффективно. <БР> С столоверчением()
код есть два прохода по строке, один проход по всей строке, чтобы преобразовать его в нижний регистр, а другой искать нужного индекса.<БР> С
регулярное выражение` код один проход по строке, которая выглядит, чтобы соответствовать желаемого индекса.<БР>Поэтому, на длинных строк рекомендую использовать
регулярное выражение
версия (я думаю, что для коротких строк эта эффективность достигается за счет создания хотя объектвыражение
)Используйте RegExp:
Или используйте
.toLowerCase()
:Есть несколько подходов здесь.
Если вы хотите выполнить сравнение без учета регистра проверить только этот экземпляр, сделать что-то вроде следующего.
Кроме того, если вы'вновь регулярно выполняя эту проверку, вы можете добавить новый метод indexOf()`-как способ на эту строку, но сделать его нечувствительным к регистру.
Из ES2016 вы также можете использовать немного лучше / легче / более элегантный способ:
или
Вот некоторые сравнения
.метод indexOf()
и.включает в себя()
: https://dev.to/adroitcoder/includes-vs-indexof-in-javascriptЭто'с 2016 года, и там's нет четкого пути, как это сделать? Я надеялась на copypasta. Я'придется идти.
Дизайн Примечания: я хотел, чтобы минимизировать использование памяти и, следовательно, повышение скорости - так нет копирование/мутирующие строк. Я предполагаю, что В8 (и других систем) можно оптимизировать эту функцию.
Моя причина для названия:
Почему не...:
столоверчением()
- потенциальный неоднократные призывы к столоверчения на одну и ту же строку.Выражение
- неудобно искать с переменной. Даже объекта regexp неловко, чтобы избежать символовДля более эффективного поиска используйте следующий код,
В первое предупреждение(), JavaScript и вернулись на "-1" и - другими словами, метод indexOf() не нашел совпадений: это просто потому, что "наличие" это в нижнем регистре в первой строке, и правильно, с большой буквы во-вторых. Чтобы выполнить поиск независимый от регистра при помощи indexOf(), вы можете сделать обе строки в верхнем или нижнем регистре. Это означает, что, как и в второе предупреждение(), JavaScript будет только проверить на вхождение строки, вы ищете, капитализация игнорируется.
Ссылка, http://freewebdesigntutorials.com/javaScriptTutorials/jsStringObject/indexOfMethod.htm
Если "рекомендатель" - это массив, вы можете использовать
findIndex()
Пример для любого языка:
Здесь'ы мое мнение:
Сценарий:
Вы можете попробовать это
в
в