Почему этот RegEx соответствует этому номеру? - PullRequest
0 голосов
/ 26 сентября 2019

/[^01235689]/.test(+n) соответствует 54, и я не уверен почему.Можно ли это переписать лучше?

var n=54;
console.log( /[^01235689]/.test(+n) );

1 Ответ

3 голосов
/ 26 сентября 2019

Это регулярное выражение говорит: "сопоставьте все, что не является одной из этих цифр".4 не является одной из этих цифр, поэтому строка соответствует.Если вы хотите, чтобы он сказал «соответствует любому, что не содержит ни одной из этих цифр», вы хотите проверить, что каждый символ соответствует этому шаблону от начала до конца:

/^[^01235689]*$/.test(+n);

(что означает «соответствовать любому, чтоначинается с любого количества символов, не входящих в этот набор, а затем заканчивается ничем другим ".)

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