簡體   English   中英

誰能幫助我進行JavaScript表單驗證?

[英]Can anyone help me with JavaScript form validation?

我已經使用JavaScript創建了一個validate函數。 我需要一個驗證來測試表單中的密碼字段,以確保它是:

  1. 至少8個字符。
  2. 包含一個數值。
  3. 包含字母值。

我只需要在我的validate函數中包含一個If語句

function Validate()
{
    with(document.memberInfo) {

        evt = new userInfo(username.value, password.value, email.value, firstname.value, lastname.value, age.value, description.value);
    }

    with(evt)
{
    if((email.indexOf("@",0)==-1))
    {
        alert("The email must contain the @ symbol.");
        return false;
    }






    evt.printEvent();
}
return true;
}

您可以使用正則表達式"/^(?=.*[0-9])(?=.*[a-zA-Z]).{8,}$/"引用此鏈接stackoverflow

JsFiddle

var regex = /^(?=.*[0-9])(?=.*[a-zA-Z]).{8,}$/;

function getValue()  {
    return document.getElementById("myinput").value;
}

function test() {
    alert(regex.test(getValue()));
}

function match() {
    alert(getValue().match(regex));    
}

<input type="text" id="myinput" value="vexillology"/>
<button id="testBtn" onclick=test()>test</button>
<button id="matchBtn" onclick=match()>match</button>

使用regx函數,您可以驗證您的表格。 這是代碼。

var xstr="^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$";
var str=Document.getElementById("id").value;
    var ck=xstr.exec(str);
    if(!ck || ck[0]!=str){
       //code
    }

使用正則表達式是可行的方法,但更具可讀性的解決方案可能是:

function isValid(pass) {
    return pass.length >= 8 &&    // at least 8 characters
           /\d/.test(pass)  &&    // contains a digit
           /[A-Za-z]/.test(pass); // contains a letter
}

 function isValid(pass) { return pass.length >= 8 && /\\d/.test(pass) && /[A-Za-z]/.test(pass); } var field = document.getElementById("password"); var output = document.getElementById("output"); field.onkeyup = function() { output.innerHTML = isValid(field.value) ? "Valid" : "Not Valid"; } 
 <input type="text" id="password" placeholder="Enter password" /> <span id="output"></span> 

另外,您可以將它們全部放在一個正則表達式中:

function isValid(pass) {
    return /^(?=.*[A-Za-z])(?=.*\d).{8,}$/.test(pass);
}

JSFiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM