7

我有一个通过 html 表动态搜索的脚本。请参见此处的示例<tr>它工作正常,但如果用户在搜索字段中输入“aa”,我希望出现带有字母“å”的字母。反之亦然。(“å”等价于“aa”,“aa”等价于“å”)。

我想避免标记中的隐藏文本,而是处理脚本中的替代拼写。我想这可以通过创建某种特殊字符映射来完成——我只是不知道该怎么做。

有人有什么想法吗?

4

2 回答 2

3

您需要做的是将您的正则表达式 /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

于 2013-05-14T13:01:11.380 回答
3

我更新了你的代码。你可以尝试这样的事情:

var val =  $(this).val().replace(/\w\w/g, function(c) {
            return {
                "AA" : "AA|Å",
                "aa" : "aa|å"
            }[c] || c;
        });

更新正则表达式以替换为 aa 或 å

查看更新的修补程序: http: //tinker.io/b04e6/13

使用替换功能。您可以在函数中映射您想要的字符

于 2013-05-14T12:51:44.890 回答