0

有没有办法将 RegExp 修饰符传递给 jquery 不显眼的验证?我想让正则表达式不区分大小写。

RegExp 的构造函数包含一个可以设置为 i|g|m 的修饰符参数:

修饰符说明
i 执行不区分大小写的匹配
g 执行全局匹配(查找所有匹配而不是在第一个匹配后停止)
m 执行多行匹配

所以能做就好了

<input type="text" name="Property_FullPostCode" 
            data-val="true" data-val-required="Invalid postcode" data-val-regex="Invalid postcode"
               data-val-regex-pattern="myregex" **data-val-regex-modifiers="i"** />

有没有办法这样做而无需修改 jquery.validate.unobtrusive.js 或添加新的验证模式?

4

1 回答 1

1

My quick fix was to change jquery.validate.unobtrusive.js to:

$jQval.addMethod("regex", function (value, element, params) {
        var match;
        if (this.optional(element)) {
            return true;
        }
        **var modifiers = $(element).data('val-regex-modifiers');**
        match = new RegExp(params**, modifiers**).exec(value);
        return (match && (match.index === 0) && (match[0].length === value.length));
    });
于 2012-05-01T11:07:13.343 回答