我的代码:
jQuery.fn.extend({
highlight: function(search){
var regex = new RegExp('(<[^>]*>)|('+ search.replace(/[.+]i/,"$0") +')','ig');
return this.html(this.html().replace(regex, function(a, b, c){
return (a.charAt(0) == '<') ? a : '<strong class="highlight">' + c + '</strong>';
}));
}
});
我想突出显示带有重音符号的字母, 即:
$('body').highlight("cao");
应突出显示:[ção] OR [ção] OR [cáo] OR expre[cão]tion OR [Cáo]tion
我怎样才能做到这一点?
最佳答案
执行此操作的唯一正确方法是首先通过 Unicode 规范化形式 D(规范分解)运行它。
然后,您剥离我们产生的任何标记(\pM
字符,或者可能 \p{Diacritic}
,具体取决于),并针对 de/un 运行您的比赛- 标记版本。
在任何情况下都不要对一堆文字进行硬编码。哎呀!
python 排序!
关于jquery - 不区分重音的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4261740/