проверка регулярных выражений javascript - PullRequest
0 голосов
/ 29 апреля 2010

Есть ли способ найти, какой символ ввода не соответствует шаблону регулярного выражения .

Например: рассмотрим [A-Za-z \ s. &] Только допустимо, но пользователь вводит как «test / string», где «/» делает ввод недействительным. Как найти, кто не может регулярное выражение (наш случай '/')

Ответы [ 3 ]

2 голосов
/ 29 апреля 2010

Вы можете удалить действительные символы, и у вас будет строка из недопустимых символов:

var invalid = "test/string".replace(/[A-Za-z\s.&]/g,""); // results in "/"
1 голос
/ 29 апреля 2010

Просто отмените класс вашего персонажа и выясните, какие персонажи соответствуют ему.

[^A-Za-z\s.&]

будет соответствовать / в test/string. Итак, в целом вы получите

if (/^[A-Za-z\s.&]+$/.test(subject)) {
    // Successful match
} else {
    result = subject.match(/[^A-Za-z\s.&]/g);
    // result is an array that contains all the characters that failed the match
}
1 голос
/ 29 апреля 2010

Чтобы определить, какие символы не пройдены, разделите их на /[A-Za-z\s.&]+/, вы получите список недопустимых символов

"test/string".split(/[A-Za-z\s.&]+/).join('')
/

Чтобы проверить правильность имени пользователя или нет, вы можете просто использовать ^ и $ anchors.

/^[A-Za-z\s.&]+$/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...