我正在按照以下条件验证密码: 1•字母和数字 2•允许“!”,“?”,“。” 3•Min 1大写字母 4•最少8个字符 5•最多16个字符 6•最少2个数字 7•不包含名字 8•不包含姓氏
此代码在前6个条件下效果很好,但仍无法验证7和8。
function validatePassword(){
var inputs = document.getElementsByTagName('input');
var allowedInput = new RegExp("^(?=(.*\\d){2})(?=.*[A-Z])[a-
zA-Z0-9!?.]{8,16}$");
for(i = 0; i < inputs.length; i++){
if(inputs[i].type == "password"){
if(inputs[i].value.match(allowedInput)){
console.log("Pass Good");
}
else{
console.log("Only numbers, letters!,?,. allowed\n" +
"Between 8 - 16 chars\n" +
"Minimum one uppercase letter\n" +
"Minimum 2 digits\n");
}
}
}
}
答案 0 :(得分:0)
这是用于使用正则表达式使用Java验证名字和姓氏的javascript代码
test()–此函数用于在JavaScript中执行正则表达式匹配。
var regName = /^[a-zA-Z]+ [a-zA-Z]+$/;
var name = document.getElementById('nameInput').value;
if(!regName.test(name)){
alert('Invalid name given.');
}else{
alert('Valid name given.');
}
<script>
function validate(){
var regName = /^[a-zA-Z]+ [a-zA-Z]+$/;
var name = document.getElementById('name').value;
if(!regName.test(name)){
alert('Please enter your full name (first & last name).');
document.getElementById('name').focus();
return false;
}else{
alert('Valid name given.');
return true;
}
}
</script>
答案 1 :(得分:0)
由于您未使用正则表达式标记,因此这是另一种方法:
var fnlc = firstname.toLowerCase();
var lnlc = lastname.toLowerCase();
var vallc = inputs[i].value.toLowerCase();
var hasname = (vallc.indexOf(fnlc) >= 0 || vallc.indexOf(fnlc) >= 0);
如果您因为非常喜欢正则表达式而对心脏感到不安;),则只需分别测试名称:
var testNames = new RegExp(firstname+'|'+lastname, "gi");
var hasname = testNames.test(inputs[i].value); // true if found
答案 2 :(得分:0)
对于验证7和8,您可以使用Array.prototype.includes()
并如下所示修改代码:
我假设 first 和 lastName 是变量,您可以使用 Document.querySelector()之一从DOM中获取它或任何其他DOM操作器。
function validatePassword(){
var inputs = document.getElementsByTagName('input');
var allowedInput = new RegExp("^(?=(.*\\d){2})(?=.*[A-Z])[a-
zA-Z0-9!?.]{8,16}$");
for(i = 0; i < inputs.length; i++){
if(inputs[i].type == "password" && inputs[i].includes(firstName) && inputs[i].includes(lastName)){
if(inputs[i].value.match(allowedInput) && ){
console.log("Pass Good");
}
else{
console.log("Only numbers, letters!,?,. allowed\n" +
"Between 8 - 16 chars\n" +
"Minimum one uppercase letter\n" +
"Minimum 2 digits\n");
}
}
}
}