【问题标题】:Javascript password validationJavascript密码验证
【发布时间】: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;}

【问题讨论】:

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

标签: javascript validation passwords


【解决方案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;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-14
      • 2013-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多