Javascriptを使用してアクセント付きのアクセント付きのバージョンと一致しない正規表現を使用する方法を探しています。私はオートコンプリートで言葉を中心に大胆なhtmlタグを追加するためのjQuery-UIのオートコンプリートを延長していJavascriptアクセント記号とアクセント記号のないバージョンの文字列と一致する正規表現
は、ここに私のコードです:私は(例えば)モントリオールを書く場合は、今
<script>
// Add feature to autocomplete to make the searched query in bold letter
$.extend($.ui.autocomplete.prototype, {
_renderItem: function (ul, item) {
var searchMask = this.element.val();
var replaceMask = "<b style=\"\">$&</b>";
var splittedMask = searchMask.split(' ');
var html = regEx = '';
// Fix I added so it works with multiple words.
splittedMask.forEach(function(word){
if (word.length >= 2){
// Here is the part that should interest you
regEx = new RegExp(word, "ig");
if (html == ''){
html = item.label.replace(regEx, replaceMask);
} else {
html = html.replace(regEx, replaceMask);
}
} else {
html = item.label;
}
});
return $("<li></li>")
.data("item.autocomplete", item)
.append($("<span></span>").html(html))
.appendTo(ul);
}
});
</script>
だから、それが動作し、私のメニューでモントリオールを見つけますが、モントリオールを書くとRegEx
で見つけられません。
私はオンラインで見ましたが、正しい正規表現が見つかりませんでした。
入力を最初に正規化する必要があります。これは 'é'と' e'を一致させる方法がないためです。あなたはすべての 'e'をパターン内の' [ee] 'に置き換えることを検討するかもしれません。 –
@WiktorStribiżewそれは実際には良いアイデアの男です、私は[ee]とa [aà]にそれをしました。あなたはそれを使って答えを出さなければならない私はそれが私の問題の良い解決だと信じている –
私はこの提案で答えを加えました。 –