У меня есть страница с текстовым полем, где пользователь должен ввести 24-значный регистрационный код (буквы и цифры, без учета регистра). Я использовал, maxlength
чтобы ограничить пользователя вводом 24 символов.
Регистрационные коды обычно задаются в виде групп символов, разделенных черточками, но я бы хотел, чтобы пользователь вводил коды без черточек.
Как я могу написать свой код JavaScript без jQuery, чтобы проверить, что данная строка, которую вводит пользователь, не содержит тире или, что еще лучше, содержит только буквенно-цифровые символы?
javascript
string
Река Вивиан
источник
источник
inArray
.Ответы:
Чтобы найти "привет" в
your_string
Для буквенного числа вы можете использовать регулярное выражение:
http://www.regular-expressions.info/javascript.html
Буквенно-цифровое регулярное выражение
источник
/hello/g.test(your_string)
. Несмотря на то, что indexOf работает, я думаю, что тест на регулярные выражения лучше рассказывает о том, чего вы пытаетесь достичь. Если я пытаюсь найти последовательность символов внутри строки, индекс не имеет значения.С ES6 .include ()
E: Не поддерживается IE - вместо этого вы можете использовать оператор Tilde
~
( Bitwise NOT ) с .indexOf ()Используется с числом, эффективен оператор Тильды
~N => -(N+1)
. Используйте его с двойным отрицанием!!
( логическое НЕ ) для преобразования чисел в bools:источник
Если у вас есть текст в переменной
foo
:Это проверит и убедится, что пользователь ввел хотя бы один символ и вводил только буквенно-цифровые символы.
источник
проверить, содержит ли строка (слово / предложение ...) определенное слово / символ
источник
ES6 содержит встроенный метод (
includes
) в Stringprototype
, который можно использовать для проверки, содержит ли строка другую строку или нет.Следующий polyfill может быть использован для добавления этого метода в неподдерживаемых браузерах. ( Источник )
источник
Используйте регулярное выражение для достижения этой цели.
источник
Вы все слишком усердно думаете. Просто используйте простое регулярное выражение, это ваш лучший друг.
Выучите регулярные выражения за 5 минут?
источник
if ( string1.test(regex) ) { alert("He likes pizza!"); }
var regex = /^[a-z0-9]+$/i
regex.test(string1)
regex.test(str)
. (str.match(regex)
похоже, но не возвращает логическое значение.)Если вы ищете символ (ы) в начале или в конце строки, вы также можете использовать
startsWith
иendsWith
источник
источник
Чтобы проверить только буквенно-цифровые символы:
Регулярное выражение проверяет 1 или более (+) из набора символов 0-9, AZ и az, начиная с начала ввода (^) и заканчивая концом ввода ($).
источник
Ответ Кевинса правильный, но для него требуется «магическое» число:
В этом случае вам нужно знать, что -1 означает « не найден» . Я думаю, что немного лучшая версия будет:
источник
indexOf()
вернет -1, если строка не найдена. Так что это вряд ли больше волшебства, чем использование 0 .Попробуй это:
Вот пример: http://jsfiddle.net/oliverni/cb8xw/
источник
Функция поиска String тоже полезна. Он ищет символ, а также подстроку в данной строке.
'apple'.search('pl')
возвращается2
'apple'.search('x')
возвращение-1
источник
Если вы читаете данные из DOM, такие как тег ap или h1, например, вам нужно использовать две встроенные функции JavaScript, это довольно просто, но ограничено es6, по крайней мере, для решения, которое я собираюсь предоставить. Я буду искать все p-теги в DOM, если текст содержит «T», весь абзац будет удален. Я надеюсь, что этот маленький пример поможет кому-то!
HTML
JS
источник
Работает отлично. Этот пример очень поможет.
источник
Демонстрация: метод include () находит символ «содержит» во всей строке, он возвращает true.
источник
Проверьте, является ли строка буквенно-цифровой или буквенно-цифровой + некоторые допустимые символы
Самый быстрый алфавитно-цифровой метод, вероятно, как упомянуто в: Лучший способ алфавитно-цифровой проверки в Javascript, поскольку он работает непосредственно с диапазонами номеров.
Затем, чтобы разумно использовать несколько дополнительных символов, мы можем просто поместить их в
Set
быстрый поиск.Я считаю, что эта реализация будет правильно работать с суррогатными парами .
GitHub вверх по течению .
Протестировано в Node.js v10.15.1.
источник