Javascript密码验证

Posted

技术标签:

【中文标题】Javascript密码验证【英文标题】:Javascript password validation 【发布时间】:2013-04-14 22:59:01 【问题描述】:

任何人都可以建议使用 javascript 进行简单的密码验证。我需要它至少有 4 个字符长,并且至少包含 1 个字母和 1 个数字。

这是一个学校项目,所以它实际上只需要一个简单的验证来确保他们输入了所需的字符。

我正在使用

<textarea id="special_info" name="address" onfocus="this.value=''" rows="5" cols="40" >Please enter your address...
            </textarea>
            <div id="maxcar">(Maximum characters: 200)
            </div>

我的javascript是这种格式

function validate_form()

valid=true;

var letters=/^[a-zA-Z]+$/;
var numbers=/^[0-9]+$/;
var email=document.order_form.user_email.value;
var invalid = [];

if (document.order_form.first_name.value.search(letters)==-1)
invalid.push("*First Name")
   

if (document.order_form.surname.value.search(letters)==-1)
invalid.push("*Surname Name")


if (email.indexOf("@")<1 || email.lastIndexOf(".")<email.indexOf("@")+2 
|| email.lastIndexOf(".")+2>=email.length)
invalid.push("*Email")


if (invalid.length != 0)
alert("Please provide response: \n" + invalid.join("\n") ); 
    valid = false;
    invalid = [];


return valid;

【问题讨论】:

有什么问题?你面临什么问题?你哪里有问题? 大声笑 好吧,我真的不知道如何使用上面使用的相同格式编写它。我知道这很简单,但我很困惑! 【参考方案1】:

试试这个:

// returns true if the form was valid; false otherwise.

function validateForm() 

    var allLetters = /^[a-zA-Z]+$/;
    var letter = /[a-zA-Z]/;
    var number = /[0-9]/;

    var firstName = document.order_form.first_name.value;
    var surname = document.order_form.surname.value;
    var email = document.order_form.user_email.value;
    var password = document.order_form.password.value;

    var invalid = [];

    if (!allLetters.test(firstName)) 
        invalid.push("*First Name");
    

    if (!allLetters.test(surname)) 
        invalid.push("*Surname Name");
    

    if (email.indexOf("@") < 1 || email.lastIndexOf(".") < email.indexOf("@") + 2 || email.lastIndexOf(".") + 2 >= email.length) 
        invalid.push("*Email");
    

    if (password.length < 4 || !letter.test(password) || !number.test(password)) 
        invalid.push("*Password");
    

    if (invalid.length != 0) 
        alert("Please provide response: \n" + invalid.join("\n"));
        return false;
    

    return true;

仔细阅读,运行它,如果有不清楚的地方提出问题。

注意使用RegExp.test 而不是String.search。

【讨论】:

【参考方案2】:

您可以使用正则表达式并检查长度。正则表达式是对一个字母和一个数字以任意顺序进行不区分大小写的检查。长度必须大于 3。

function testString(s) 
  var re = /[a-z]\d|\d[a-z]/i;
  return re.test(s) && s.length > 3;

【讨论】:

以上是关于Javascript密码验证的主要内容,如果未能解决你的问题,请参考以下文章

使用 JavaScript 验证密码和名字

具有特殊字符的Javascript正则表达式密码验证

JavaScript 正则表单验证(用户名密码确认密码手机号座机号身份证号)

带有密码确认的 Javascript 表单验证

没有 JQuery 的 Javascript 特殊字符密码验证

javascript 验证密码