我使用JavaScript创建了一个验证功能。我需要一个验证,在表单中测试该密码字段以确保它是:
我只需要在验证函数
中包含一个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 :(得分:0)
您可以使用正则表达式"/^(?=.*[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>
答案 1 :(得分:0)
使用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
}
答案 2 :(得分:0)
使用正则表达式是可行的方法,但更可读的解决方案可能是:
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";
}
&#13;
<input type="text" id="password" placeholder="Enter password" />
<span id="output"></span>
&#13;
或者,您可以将其全部放在一个正则表达式中:
function isValid(pass) {
return /^(?=.*[A-Za-z])(?=.*\d).{8,}$/.test(pass);
}