循环浏览text()时,将“å”等非英语字符计为“aa”

时间:2013-05-14 12:24:36

标签: jquery

我有一个通过html表动态搜索的脚本。见example here。它工作正常,但如果用户在搜索字段中输入“aa”,我希望显示带有字母“å”的<tr>。反之亦然。 ('å'相当于'aa','aa'相当于'å'。

我想避免在标记中隐藏文本,而是在脚本中处理替代拼写。我想这可以通过创建某种特殊字符映射来完成 - 我只是不知道如何做到这一点。

有人有任何想法吗?

2 个答案:

答案 0 :(得分:3)

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

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

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

请参阅更新的修补程序:http://tinker.io/b04e6/13

使用替换功能。您可以在函数

中映射所需的字符

答案 1 :(得分: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