繁体   English   中英

RegExp 未得到验证,仅对两个小写字母进行后续检查

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM