jQuery验证正则表达式:textarea包含短语

jQuery验证正则表达式:textarea包含短语,jquery,regex,validation,Jquery,Regex,Validation,我正在尝试检查文本区域,以确保它包含文本短语 到目前为止,这是我所拥有的,但它不起作用: $.validator.addMethod( "regex", function(value, element, regexp) { var check = false; var re = new RegExp(regexp); return this.optional(element) || re.test(value); },

我正在尝试检查文本区域,以确保它包含文本短语

到目前为止,这是我所拥有的,但它不起作用:

$.validator.addMethod(
    "regex",
    function(value, element, regexp) {
        var check = false;
        var re = new RegExp(regexp);
        return this.optional(element) || re.test(value);
    },
    "Please include your keyword(s)."
);

$("#article_text").rules("add", { regex: "/test phrase/i" });

有什么想法吗?理想情况下,我希望它检查多个短语,如果其中任何一个未包含在文本区域中,则显示错误。

当使用
RegExp()
时,您应该去掉
/
和标志,它应该是:

$("#article_text").rules("add", { regex: "test phrase" });
。但由于您需要标志,更好的方法是直接使用它,而不是从字符串创建,如下所示:

$.validator.addMethod("regex", function(value, element, regexp) {
  return this.optional(element) || regexp.test(value);
}, "Please include your keyword(s).");
$("#article_text").rules("add", { regex: /test phrase/i });
那么你可以这样称呼它:

$.validator.addMethod("regex", function(value, element, regexp) {
  return this.optional(element) || regexp.test(value);
}, "Please include your keyword(s).");
$("#article_text").rules("add", { regex: /test phrase/i });

.

你能定义“不工作”吗?这是一个玩笑吗?好吧,它似乎总是标记它,即使我把“测试短语”放在文本区。如果有人有不同的方法来做这件事,我也愿意接受。它不必使用正则表达式或验证器。非常好,谢谢Nick。需要两个不同短语的最佳方式是什么?例如:“测试词组”和“另一个词组”都需要包括在内。@Ricky-如果你在做一个正则表达式,只需
|
为一个“或”组合将它们分开,我用什么来要求这两个词组都出现?@Ricky-如果你想对它们都进行检查,你可以添加另一个正则表达式规则(通过
规则(“添加”)
),虽然我不是正则表达式专家,但我可能想问一个关于标记正则表达式的问题,让那些正则表达式专家看一看。@Ricky-如果它无效,它不应该到达该代码,但是当它到达时,它需要是
data:$(form)。serialize()
,因为
form
是DOM元素,而不是jQuery对象。