我的英格兰很差,对不起。 我会尽我所能。
我尝试使用正则表达式
制作SignUpForm问题是当我使用正则表达式
处理if语句时结果首先是真的,但在那之后,变为假。我想
下面是我的代码(javascript)
$(document).ready(function () {
var idCheck = /^[a-z]+[a-z0-9]{5,19}$/g; // more than 6 words
var pwCheck = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/; // more than 8 words including at least one number
var emCheck = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/; // valid email check
var signupConfirm = $('#signupConfirm'),
id = $('#id'),
pw = $('#pw'),
repw = $('#repw'),
email =$('#email');
signupConfirm.click(function () {
if(id.val() === '' || pw.val() === '' || email.val() === ''){
$('#signupForm').html('Fill the all blanks');
return false;
} else {
if (idCheck.test(id.val()) !== true) {
$('#signupForm').html('ID has to be more than 6 words');
id.focus();
return false;
} else if (pwCheck.test(pw.val()) !== true) {
$('#signupForm').html('The passwords has to be more than 8 words including at least one number');
pw.focus();
return false;
} else if (repw !== pw) {
$('#signupForm').html('The passwords are not the same.');
pw.empty();
repw.empty();
pw.focus();
return false;
}
if (emCheck.test(email.val()) !== true) {
$('#signupForm').html('Fill a valid email');
email.focus();
return false;
}
}
})
});
我已经多次更改正则表达式了。但仍然喜欢这个。
有什么提示我可以解决这个问题吗? 我希望有人可以帮助我。
谢谢。祝你有美好的一天
答案 0 :(得分:0)
请勿在正则表达式上使用global
标记。你的代码应该是:
var idCheck = /^[a-z]+[a-z0-9]{5,19}$/;
当您与/g
标志匹配时,您的正则表达式将在调用之间保存状态,因此所有后续匹配也将包括先前的输入。
答案 1 :(得分:0)
使用
var date = new Date(val);
删除 g 标志 并修改行
var idCheck = /^[a-z]+[a-z0-9]{5,19}$/