jquery unobrtusive validation & regex modidifers



有没有办法将 RegExp 修饰符传递给 jquery unobtusive validation?我想使正则表达式不区分大小写。

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或添加新的验证模式?

我的快速解决方法是将jquery.validate.unobtrusive.js更改为:

$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));
    });

最新更新