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

私の簡単な修正は、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));
    });
于 2012-05-01T11:07:13.343 に答える