2013-05-14 8 views
7

私はHTMLテーブルから動的に検索するスクリプトを持っています。 example hereを参照してください。それはうまく動作しますが、ユーザが検索フィールドに「aa」と入力すると、「å」の文字が表示される<tr>が表示されます。およびその逆。 (「å」は「aa」に相当し、「aa」は「å」と同等です)。text()をループするときに "å"のような英語以外の文字を "aa"とします。

私はマークアップで隠されたテキストを避け、代わりにスクリプト内の別のスペルを処理したいと思います。私はそれが特殊文字マップのいくつかの並べ替えを作成することによって行うことができると思います - 私はちょうどこれを行う方法がありません。

誰でもアイデアがありますか?

答えて

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

+0

それは私が探しているものです。すごくかっこいい。どうもありがとうございます! – Meek

3

コードを更新しました。あなたはこのような何かを試みることができる:http://tinker.io/b04e6/13

、交換機能を使用します:

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

アップデートは、AAと交換または更新いじくりを参照してください

Aするとregexします。関数内で目的の文字をマップすることができます

+0

こんにちは。どうもありがとう。 これは本当に近いですが、「aa」と入力すると、「aa」と「å」を含む表の行が表示されます。したがって、両方のオプションが有効である必要があります。 – Meek

+0

bot aaおよびå – Yeronimo

+0

と連携して更新されました。 – Meek

関連する問題