[英]Can anyone help me with JavaScript form validation?
我已經使用JavaScript創建了一個validate函數。 我需要一個驗證來測試表單中的密碼字段,以確保它是:
我只需要在我的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
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.