3

このjavascript正規表現にČčĆ抚Đđのようなラテン文字の使用を含めるにはどうすればよいですか

var regex = new RegExp('\\b' + this.value, "i");

アップデート:

チェックボックスラベルをフィルタリングするためのこのコードがありますが、Ččćの入力があるとうまく機能しません

function listFilter(list, input) {
    var $lbs = list.find('.css-label');

    function filter(){
        var regex = new RegExp('\\b' + this.value);
        var $els = $lbs.filter(function(){
            return regex.test($(this).text());
        });
        $lbs.not($els).hide().prev().hide();
        $els.show().prev().show();
    };

    input.keyup(filter).change(filter)
}

jQuery(function($){
    listFilter($('#list'), $('.search-filter'))
})

ここにフィドルがあります:DEMO

4

2 に答える 2

4

正規表現の問題は、単語の境界がこれらの文字で適切に検出されないことです ( Unicode に関して正しく処理されていないの\wと同じように)。\W

私はから始めることをお勧めします

new RegExp('(^|[\\s\\.])ČčĆ抚Đđ', "i")

[\\s\\.]単語の境界として必要な可能性のある他の文字に追加します。

予想される可能な単語境界を定義できない場合は、ライブラリを使用して「Unicode 互換」の正規表現を作成することをお勧めします。一部はこの関連する質問にリストされています。

于 2013-07-30T14:33:16.970 に答える