RegEx для Javascript, чтобы разрешить только буквенно-цифровой - PullRequest
199 голосов
/ 23 декабря 2008

Мне нужно найти регистр ex, который позволяет только буквенно-цифровой. Пока что все, что я пробую, работают, только если строка буквенно-цифровая, то есть содержит как букву, так и цифру. Я просто хочу один, который позволил бы и то, и другое, и не требовал бы обоих.

Ответы [ 12 ]

2 голосов
/ 05 января 2018

Похоже, что многие пользователи заметили, что эти регулярные выражения почти наверняка потерпят неудачу, если мы не будем строго работать на английском языке. Но я думаю, что есть простой путь вперед, который не был бы таким ограниченным.

  1. сделайте копию вашей строки во всех ВЕРХНЯЯ ЧАСТЬ
  2. сделать вторую копию строчными буквами

Любые символы, которые совпадают в этих строках, по определению не являются буквенными.

let copy1 = originalString.toUpperCase();
let copy2 = originalString.toLowerCase();
for(let i=0; i<originalString.length; i++) {
    let bIsAlphabetic = (copy1[i] != copy2[i]);
}

При желании вы также можете определять цифры, просто просматривая цифры от 0 до 9.

1 голос
/ 12 марта 2015

Даже лучше, чем указано Gayan Dissanayake.

/^[-\w\s]+$/

Теперь ^[a-zA-Z0-9]+$ можно представить как ^\w+$

Вы можете использовать \ s вместо пробела. Обратите внимание, что \ s обрабатывает пробелы, а не только один пробел.

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