使用Regex和JqueryUI验证

时间:2014-09-21 16:10:32

标签: jquery regex jquery-ui validation ruby-on-rails-4

我正在尝试按照jQuery validate: How to add a rule for regular expression validation?

的指导向我的JQueryUI验证器添加正则表达式验证
$.validator.addMethod(
        "regex",
        function(value, element, regexp) {
            var re = new RegExp(regexp);
            return this.optional(element) || re.test(value);
        },
        "Please check your input."
);

$("#Textbox").rules("add", { regex: "^[a-zA-Z'.\\s]{1,40}$" })

我想要包含的正则表达式是

^(\d+(?:(?: \d+)*\/\d+)?)$

可以在http://regex101.com/r/cB3fQ1/2

看到

当我将正则表达式输入jquery时,没有条目通过。这就是我输入的方式

$("#Textbox").rules("add", { regex: "^(\d+(?:(?: \d+)*\/\d+)?)$" })

是因为我将它包装在字符串中并且某些语法是冲突的吗?我对正则表达式缺乏经验,并且不确定如何解决此问题。如果你看到我的错误在哪里,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:1)

因为您要将正则表达式作为字符串输入,所以需要双重转义反斜杠:

$("#Textbox").rules("add", { regex: "^(\\d+(?:(?: \\d+)*\/\\d+)?)$" })

或者使用正则表达式

$("#Textbox").rules("add", { regex: /^(\d+(?:(?: \d+)*\/\d+)?)$/ })