[英]RegExp is not getting validated and only consequent check is happening for two small letters
我在 javascript 中有一个 function 验证正则表达式,但它不起作用,请在下面找到我的代码。
var S = jsonData.SYMBOL;
var symbols = new RegExp('[-!$%^&*()_+|~=`{}[:;<>?,.@#\]]{' + S + '}', 'g')
if(psw.value.match(symbols)) {
symbol.classList.remove("invalid");
symbol.classList.add("valid");
} else {
symbol.classList.remove("valid");
symbol.classList.add("invalid");
}
在下面的代码中,如果要验证两个小写字母,则只会进行后续检查,而不是随机进行。 例如:“aa” 工作但“a1a” 不工作。
var LC = jsonData.LOWERCASE;
var lowerCaseLetters = new RegExp('[a-z]{' + LC + '}', 'g')
if(psw.value.match(lowerCaseLetters)) {
letter.classList.remove("invalid");
letter.classList.add("valid");
} else {
letter.classList.remove("valid");
letter.classList.add("invalid");
}
var S = jsonData.SYMBOL;
var symbols = new RegExp('[-!$%^&*()_+|~=`{}[:;<>?,.@#\\]]{' + S + '}', 'g')
if(psw.value.match(symbols)) {
symbol.classList.remove("invalid");
symbol.classList.add("valid");
} else {
symbol.classList.remove("valid");
symbol.classList.add("invalid");
}
上面的 javascript function 正在工作。
您似乎正在检查字符串是否包含特定字符的数字,如果是这种情况,您可以使用以下内容:
var LC = jsonData.LOWERCASE;
var matches = psw.values.match(/[a-z]/g);
if(matches != null && matches.length == LC) {
letter.classList.remove("invalid");
letter.classList.add("valid");
} else {
letter.classList.remove("valid");
letter.classList.add("invalid");
}
您可以从HERE了解有关.match(..)
的更多信息,在这种情况下(由于 'g' 标志),它将返回null
或与正则表达式匹配的子字符串数组(小写字母),该数组的length
将等于psw.values
字符串中小写字母的总数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.