【问题标题】:Java Script - Regex - Password validation with Hebrew charactersJavascript - 正则表达式 - 使用希伯来语字符验证密码
【发布时间】:2014-09-24 00:12:22
【问题描述】:

我遇到了密码验证问题。 这是我的代码:

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;
}

它说它唯一无效,所以我认为这是因为正则表达式。 我问你是否可以在这里帮忙。

非常感谢帮助!

【问题讨论】:

  • 你能知道哪个密码字符串无效吗?
  • 你有没有试过用regexpal.com之类的东西来测试一些样本数据?
  • regex101.com 还会为您提供已解析正则表达式的文字说明。
  • 看起来您的正则表达式接受 6 到 16 个字符的密码,而且它必须包含数字、特殊字符而不一定是字母……这是您想要的吗?
  • 上面的表达式表明您的密码长度应在 6 到 16 个字符之间,并且至少应包含一个数字和一个特殊字符才能有效

标签: javascript regex validation passwords


【解决方案1】:

试试这个

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

或者

// At least eight characters: one number, one uppercase, one lowercase English letter and one Hebrew letter
^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[\u0590-\u05FF]).{8,}$

或者

// At least eight characters: one number and one uppercase of lowercase English or Hebrew letter
^(?=.*[0-9])(?=.*[a-z|A-Z|\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!");
}

Regex Demo | jsBIn Demo

【讨论】:

  • 密码必须包含:英语或希伯来语(或一起)和数字。我不想要只有数字或字母。
  • 我看不出它有效。我检查了两个 Regex 的测试人员,但没有任何效果。
  • @iYonatan 你一定是在开玩笑;)再次检查答案,检查用法和两个演示。
  • 我认为我的功能有问题。你能检查我的功能并找出解决方案吗,因为我找不到。请帮帮我。
  • @iYonatan 将您的功能粘贴到您的问题中或将其粘贴到 jsbin.com 并在此处分享链接
【解决方案2】:

也许您可以检查两次以简化操作。 例如:

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");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-11
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    相关资源
    最近更新 更多