Ниже мой код:JavaScript RegExp [^ ...] выражение не дает желаемого результата
function isValid(passCode){
var myRegExp=/[^a-z\d]/i;
return !(myRegExp.test(passCode));
}
if (isValid(prompt("Enter passcode:",""))){
alert("Access granted");
}else{
alert("Denied");
}
Согласно моему пониманию, если я прохожу, например, abc
в качестве параметра функции isValid()
, myRegExp.test
должен возвращать true
и, следовательно, isValid()
должен вернуть false
(как используется оператор !
). Но функция возвращает true
. Зачем?
Вот JSFiddle: https://jsfiddle.net/k7d4va5k/#&togetherjs=GCP5bmgPP4
^внутри [] делает это «не» ... так что '/ [^ az \ d] /. Test ('abc')' будет ложным ... с другой стороны '/^[az \ d ] /. test ('abc') 'истинно, потому что^в этом случае соответствует началу строки (это то, что, я думаю, вы, возможно, намеревались) –
Вы уверены, что хотите проверить. @Jaromanda была права. Если вы передадите abc, myRegExp.test должен вернуть false – kishorekumaru
Пожалуйста, открепите свой код. –