Javascript 其中';js验证中的错误是什么

Javascript 其中';js验证中的错误是什么,javascript,Javascript,我现在正在进行表单验证。当出现错误时,Onsubmit正在提交。我不确定问题出在哪里。我认为这是关于代码的正则表达式部分,但不确定。这个验证脚本中的错误在哪里 function test_form() { var userName = document.regForm.userName.value; var firstName = document.regForm.firstName.value; var lastName = document.regForm.lastName.v

我现在正在进行表单验证。当出现错误时,Onsubmit正在提交。我不确定问题出在哪里。我认为这是关于代码的正则表达式部分,但不确定。这个验证脚本中的错误在哪里

function test_form()
{

  var userName = document.regForm.userName.value;
  var firstName = document.regForm.firstName.value;
  var lastName = document.regForm.lastName.value;
  var email = document.regForm.email.value;
  var email2 = document.regForm.email2.value;
  var password = document.regForm.password.value;
  var password2 = document.regForm.password2.value;
  var birthDay = document.regForm.birthDay.value;
  var birthMonth = document.regForm.birthMonth.value;
  var birthYear = document.regForm.birthYear.value;
  var tou = document.regForm.tou.checked;

  var regSpec = /!|@|#|\$|%|-|_|&|\*|\(|\)|\+|\[|\]|\{|\}|:|;|'|"|\||\\|,|<|>|\.|\?|\/|\^/;
  var regUser = /!|@|#|\$|%|&|\*|\(|\)|\+|\[|\]|\{|\}|:|;|'|"|\||\\|,|<|>|\.|\?|\/|\^/;

  var error = false;

  // Test all fields for empty and dob format and tou acceptance

 if(userName === "" || firstName === "" || lastName === "" || email === "" || email2 ===    ""     || password === "" || password2 === "" || tou == false || birthDay == "--Day--" ||         birthYear == "--Year--" || birthMonth == "--Month--")
 {

   error = true;

 }

  // Test all fields for applicable special characters

 if(firstName.match(regSpec) || lastName.match(regSpec))
 {

  error = true;

 }


 if(userName.match(regUser) || password.match(regUser) || password2.match(regUser))
 {

  error = true;

 }

 // Test emails for format and match

 if(email.indexOf("@") == -1 || email.indexOf(".") == -1 || email2.indexOf("@") == -1 ||      email2.indexOf(".") == -1)
  {

   error = true;

  }

 // Test passwords for match

 if(password != password2)
 {

  error = true;

 }

  // test email for match

 if(email != email2)
 {

  error = true;

 }

 // Send

 return error;


} 
功能测试\u表单()
{
var userName=document.regForm.userName.value;
var firstName=document.regForm.firstName.value;
var lastName=document.regForm.lastName.value;
var email=document.regForm.email.value;
var email2=document.regForm.email2.value;
var password=document.regForm.password.value;
var password2=document.regForm.password2.value;
var birthDay=document.regForm.birthDay.value;
var birthMonth=document.regForm.birthMonth.value;
var birthYear=document.regForm.birthYear.value;
var tou=document.regForm.tou.checked;
var regSpec=/!!|@||||$$|%-| |||&*| \(| \)| \+| \[| \]| \]:| | || | \ | \、| 124; 124; 124; \/|;
变量调节器=/!|@| | | |$$|%|和|*.\(|\)| \+\[|\]|{124;}:| | |“,| | | | | | | | | | | |,| | | | | | | |/|;
var错误=错误;
//测试所有字段的空和dob格式以及tou验收
如果(用户名==“”| |名==“”| | |姓==“”| |电子邮件==“”| | |电子邮件2==“”| |密码2==“”| |头==“”| |假| | |生日==“”--日--“| | |生日==“”--年--“| | | | |生日==“”--月--”
{
错误=真;
}
//测试所有字段是否具有适用的特殊字符
if(firstName.match(regSpec)| | lastName.match(regSpec))
{
错误=真;
}
if(userName.match(regUser)| | password.match(regUser)| | password2.match(regUser))
{
错误=真;
}
//测试电子邮件的格式和匹配
如果(email.indexOf(“@”)=-1 | | email.indexOf(“.”=-1 | | email2.indexOf(“@”)=-1 | | email2.indexOf(“.”=-1)
{
错误=真;
}
//测试密码是否匹配
如果(密码!=密码2)
{
错误=真;
}
//测试匹配的电子邮件
如果(电子邮件!=电子邮件2)
{
错误=真;
}
//发送
返回误差;
} 

您如何使用此功能。若要停止提交表单,必须返回false。如果此函数用作onsubmit处理程序,那么如果出现错误,该函数将返回true,这意味着表单将在16分钟前提交–OJay


这位评论者是对的。我将布尔值更改为noError,并确保错误将其设置为false。现在效果很好。还需要做一些php验证:)谢谢。

您如何使用此函数。要停止提交表单,您必须
返回false
。如果将此函数用作onsubmit处理程序,那么如果出现错误,该函数将返回true,这将意味着表单将节省您的时间和精力,只需使用经过良好测试和稳定的jquery验证插件,并且记住,为了通过验证,用户可能只需在其浏览器中禁用JavaScript即可。您必须始终在服务器端验证数据!