Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery/Javascript-多个正则表达式验证_Javascript_Jquery_Html_Validation - Fatal编程技术网

jQuery/Javascript-多个正则表达式验证

jQuery/Javascript-多个正则表达式验证,javascript,jquery,html,validation,Javascript,Jquery,Html,Validation,如何在jQuery或JS中验证两个不同的正则表达式 我的JS代码: function validate(){ var MyField = document.getElementById('MyField'); if (MyField.value == null || !MyField.value.toString().match(/^(\d{3})-?\d{2}-?\d{4}$/) || !MyField.value.toString().match(/^(\d{2})-?\d{

如何在jQuery或JS中验证两个不同的正则表达式

我的JS代码:

function validate(){
    var MyField = document.getElementById('MyField');
    if (MyField.value == null || !MyField.value.toString().match(/^(\d{3})-?\d{2}-?\d{4}$/) || !MyField.value.toString().match(/^(\d{2})-?\d{7}$/));
    alert('Ivalid Entry ...'); 
    return false;
}
我的HTML:

<form action="">
  <input id="MyFIeld" name="MyField" type="text" />
  <input type="submit" value="Submit" onClick="validate();" />
</form>

基本上,它用于正确设置税号和SSN格式或###############。。。
我对JS或jQuery解决方案持开放态度……非常感谢所有这些帮助。

在这种情况下,我通常会做的是拥有一个regex测试的“库”:

var regexTest = function() {
   this.TaxId = /^(\d{2})-?\d{7}$/;
   this.SSN = /^(\d{3})-?\d{2}-?\d{4}$/;
}
这将分隔正则表达式,以防出于某种原因需要更改。相信我,这会不时发生。(可能不是SSN/TAXD,但这是良好的实践)

然后,我设置了一个类似于您的事件块(jQuery使其更容易),以提供即时反馈:

$("#MyField").bind("blur keyup",
   function() {
      var myVal = $(this).val(); // should store $(this) in a var instead
      if(regexTest.SSN.test(myVal) || regexTest.TaxId.test(myVal)) {
         $(this).css("background-color", "");
      } else {
         $(this).css("background-color", "#FF0000");
      }
   }
);
我知道这不会在提交时验证,但它会在用户键入时向用户提供反馈。(只要您保持验证的简单性,开销也不会太大。)然后执行数据服务器端的验证(人们可以绕过验证检查),您应该做得很好。是的,它不是在提交之前验证数据,但是如果用户看到一个红色框,他们知道这是坏数据


当然,正如一些评论所指出的,那里有验证库,但我有时喜欢编写自己的验证库

如果你在这方面有困难,你可以使用这个,我建议你只过滤除有效字符(如数字)以外的所有字符。这样,用户是否使用破折号、空格或其他任何分隔符都无关紧要。然后,您可以比较字段是否有足够的数字或所需的任何字符。无论您在客户端验证什么,请不要忘记在服务器端也进行验证……还要绑定到表单并在提交表单时进行验证。