Javascript 使用的任何字符的Regex Min 3
我正在创建一个密码验证,要求如果使用一个字符,它必须使用3次,例如AAABBB、AABBAB或A999000AA 我想限制每个字符的使用次数为3次:Javascript 使用的任何字符的Regex Min 3,javascript,regex,Javascript,Regex,我正在创建一个密码验证,要求如果使用一个字符,它必须使用3次,例如AAABBB、AABBAB或A999000AA 我想限制每个字符的使用次数为3次:^((()(?!(?:.*?\1){3}))*$ 如何确保每个字符至少出现3次 您可以这样做: var密码='AABBCCBACDDC', 检查={}, x; 对于(var i=password.length;i>0;i--){ x=密码[i-1]; 检查[x]=检查[x]?(检查[x]+1):1; } 用于(检查中的x){ 如果(勾选[x]!=3
^((()(?!(?:.*?\1){3}))*$
如何确保每个字符至少出现3次 您可以这样做:
var密码='AABBCCBACDDC',
检查={},
x;
对于(var i=password.length;i>0;i--){
x=密码[i-1];
检查[x]=检查[x]?(检查[x]+1):1;
}
用于(检查中的x){
如果(勾选[x]!=3){
log('+x+'出现'+check[x]+'次!');
}
}
您可以这样做:
/^(?:()\1{2})+$/
测试一个正则表达式,该正则表达式匹配三元组一个或多个次函数isStringValid(s){
返回!!s
.拆分(“”)
.sort()
.join(“”)
.match(/^(?:()\1{2})+$/)
;
}
/**忽略其余的**/
函数ValidateCtrl(){
var字段=document.querySelector(“#Test”);
var btn=document.querySelector(“#验证”);
函数checkValue(){
console.log('val',isStringValid(field.value));
}
btn.addEventListener('click',checkValue);
}
文件
.addEventListener('DOMContentLoaded',ValidateCtrl)
;代码>
#测试{
边缘顶部:20px;
显示:块;
}
验证
好奇。。。为什么这是一个要求?我不会通过正则表达式这样做。只需使用javascript,这将使其更易于理解。特别是因为javascript的正则表达式引擎不支持lookbehind,这将使这变得更加困难creative@JPacheco您的问题以REGEX
开头,您接受了一个根本没有REGEX的答案。lol。如果不需要使用regexp,请修复您的标题。我会尝试一下,我现在拥有的是:.*(\w)。*\1.*\1.*但这只是检查第一个字符是否至少出现3次,我如何将其应用于特定的文本框?@JPacheco因为您的示例显示,对于每个字符,其3次出现可能位于任何位置,您根本不能使用正则表达式。@JPacheco假设您的文本框是
,只需添加var pwd=document.getElementById('my-text-box').value代码>就在我建议的代码段开始之前。我已经运行了函数,但它没有计算字符数,有什么理由不这样做吗?