Javascript Java脚本-正则表达式-希伯来文字符密码验证

Javascript Java脚本-正则表达式-希伯来文字符密码验证,javascript,regex,validation,passwords,Javascript,Regex,Validation,Passwords,我的密码验证有问题。 这是我的密码: function validatePassword(){ var password = document.getElementById("password").value; var re = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,16}$/; if(!password.match(re)){ producePromt("The passwor

我的密码验证有问题。 这是我的密码:

function validatePassword(){

    var password = document.getElementById("password").value;
    var re = /^(?=.*[0-9])(?=.*[!@#$%^&*])[a-zA-Z0-9!@#$%^&*]{6,16}$/;


 if(!password.match(re)){

      producePromt("The password is invalid","commandPasswordPrompt","red");
            return false;

 }
    producePromt("Password is OK","commandPasswordPrompt","green");
            return true;
}
它说它只是无效的,所以我认为是因为正则表达式。 我问过你能不能在这里帮忙

非常感谢您的帮助

试试这个

// At least eight numbers or/and letters of English or Hebrew language
^[a-zA-Z0-9\u0590-\u05FF]{8,}$

用法:

var p = /^(?=.*[0-9])(?=.*[a-z|A-Z|\u0590-\u05FF]).{8,}$/g;
var s = "שלוםWorld2";
if(!p.test(s)){
  console.log("Invalid password!");
}

|

也许你可以检查两次,让它更简单。 例如:

var password = document.getElementById("password").value;
var re1 = /^a-zA-Z0-9!@#$%^&*]{6,16}$/;
var re2 = /[0-9]/
var re3 = /[!@#$%^&*]/
if(password.match(re1) && password.search(re2) >=0 && password.search(re3) >=0){
      producePromt("The password is invalid","commandPasswordPrompt","red");
            return false;
} 
producePromt("Password is OK","commandPasswordPrompt","green");

您还可以告诉哪个密码字符串是无效的吗?您是否尝试过使用类似的方法来测试一些示例数据?还将为您提供解析正则表达式的文本解释。看起来您的正则表达式接受6到16个字符的密码,它必须包含数字、特殊字符,不一定包含字母。。。这就是您想要的吗?上面的表达式表示您的密码长度应该在6到16个字符之间,并且至少应该有一个数字和一个特殊字符才能有效。密码必须包含:英语或希伯来语(或组合)和数字。我不想要只有数字或只有字母。我不认为这是可行的。我检查了两个Regex的测试程序,结果什么都没用。@iYonatan你一定在开玩笑;)再次检查答案,检查用法和两个演示。我想我有一个功能的问题。你能检查我的功能并找出解决方案吗,因为我找不到。请帮助我。@iyona可以将您的功能粘贴到您的问题中,或者将其粘贴到jsbin.com上,并在此处共享链接
var p = /^(?=.*[0-9])(?=.*[a-z|A-Z|\u0590-\u05FF]).{8,}$/g;
var s = "שלוםWorld2";
if(!p.test(s)){
  console.log("Invalid password!");
}
var password = document.getElementById("password").value;
var re1 = /^a-zA-Z0-9!@#$%^&*]{6,16}$/;
var re2 = /[0-9]/
var re3 = /[!@#$%^&*]/
if(password.match(re1) && password.search(re2) >=0 && password.search(re3) >=0){
      producePromt("The password is invalid","commandPasswordPrompt","red");
            return false;
} 
producePromt("Password is OK","commandPasswordPrompt","green");