Javascript 使用包含正则表达式和Jquery的输入字段验证表单

Javascript 使用包含正则表达式和Jquery的输入字段验证表单,javascript,jquery,regex,forms,Javascript,Jquery,Regex,Forms,我正试图让Jquery使用正则表达式验证表单,但方式很不传统。表单id为“sumform”,表单中的一个文本区域称为“summary”。我在表单之外还有一个输入字段(id=“terms\u out”),其中包含正则表达式。我似乎无法让Jquery验证器将“terms\u out”的值识别为正则表达式。当用户输入任何内容时,我的表单最终被提交 我试过了,但没用 $(function() { $.validator.addMethod("regex", function(value, elem

我正试图让Jquery使用正则表达式验证表单,但方式很不传统。表单id为“sumform”,表单中的一个文本区域称为“summary”。我在表单之外还有一个输入字段(id=“terms\u out”),其中包含正则表达式。我似乎无法让Jquery验证器将“terms\u out”的值识别为正则表达式。当用户输入任何内容时,我的表单最终被提交

我试过了,但没用

$(function() {
   $.validator.addMethod("regex", function(value, element, regexpr) {  
   return regexpr.test(value); 
   }, "Sorry, you haven't used all the terms.");    

   $("#sumform").validate({
   rules: {
       summary: {
           required: true,
           regex: '#terms_out',
       }
     }
  });
});
这个很好用

$(function() {
$.validator.addMethod("regex", function(value, element, regexpr) {          
 return regexpr.test(value);
}, "Sorry, you haven't used all the terms.");    

   $("#myForm").validate({
       rules: {
           experience: {
               required: true,
               regex: /^(?=[\S\s]*\bcell|cells|cell\b)(?=[\S\s]*\bDNA|DNA|DNA\b)(?=[\S\s]*\bsense|senses|sense\b)(?=[\S\s]*\brespond|responds|respond\b)(?=[\S\s]*\benergy|energy|energy\b)(?=[\S\s]*\bgrow|grows|grow\b)(?=[\S\s]*\bdevelop|develops|develop\b)(?=[\S\s]*\breproduce|reproduces|reproduce\b)/
           }
       }
   });
});
我在这方面是新手,所以任何帮助都将不胜感激。谢谢大家!

您可以切换:

regex:“#术语_out”,

致:

regex:$(“#terms_out”).val(),

编辑:

 $("#Form").validate({
       rules: {
           summary: {
               required: true,
              regex: new RegExp($("#terms_out").val())
           } 
       }
   });

这将从文本区域获取值并将其插入到ruls中

谢谢您的帮助Saar,但这似乎不起作用。这里是指向我的摘要表单的链接-“terms_out”字段位于左上角。您好,我调试了您的代码,问题是在您将正则表达式添加到
terms_out
之前,正在调用您的validate函数,请确保您的代码以正确的顺序运行再次感谢Saar的帮助。很抱歉,但是您如何知道在regex可用之前正在调用validate函数?我以前成功地使用过这个方法,只是它只是一个简单的数值,输入字段。再次感谢。@firenemus很简单,我调试了代码,在validate函数中添加了一个断点,然后发现当时的输入字段仍然是空的。在调用validate函数之前,在相同的on ready函数中添加一行设置输入字段中的值,您将看到它可以工作感谢您对Saar的解释。是的,google visualization api查询检索regex需要一些时间,但我不认为这就是验证失败的原因。我认为这与Jquery验证器无法识别输入字段中的正则表达式有关。例如,如果我在不执行查询的情况下为输入字段赋值,它仍然不起作用。看这里的例子。。。