我有一个通过 html 表动态搜索的脚本。请参见此处的示例。<tr>
它工作正常,但如果用户在搜索字段中输入“aa”,我希望出现带有字母“å”的字母。反之亦然。(“å”等价于“aa”,“aa”等价于“å”)。
我想避免标记中的隐藏文本,而是处理脚本中的替代拼写。我想这可以通过创建某种特殊字符映射来完成——我只是不知道该怎么做。
有人有什么想法吗?
您需要做的是将您的正则表达式 /aa/ 替换为 /((å)|(aa))/。
这是一些将为您处理替换的代码,它正在创建一个正则表达式来生成正则表达式......
var replace = [['å','aa'], ['ß','ss']];
for (var i=0;i<replace.length;i++){
var r = replace[i];
var reg = new RegExp('(('+r[0]+')|('+r[1]+'))');
inputVal = inputVal.replace(reg, '(('+r[0]+')|('+r[1]+'))');
}
或者在这里查看它的实际效果...... http://tinker.io/b04e6/9
我更新了你的代码。你可以尝试这样的事情:
var val = $(this).val().replace(/\w\w/g, function(c) {
return {
"AA" : "AA|Å",
"aa" : "aa|å"
}[c] || c;
});
更新正则表达式以替换为 aa 或 å
查看更新的修补程序: http: //tinker.io/b04e6/13
使用替换功能。您可以在函数中映射您想要的字符