2011-11-07 29 views
0

に正規表現で文章を置き換え:htmlページがロードされるとは、私は、以下の「辞書」を持っているJS

var dictionary = { 
    "Log in again": "Just do it again", 
    "Test phrase": "Lorem ipsum", 
    "word": "other word" 
} 

、私はこれらが同様にロードしたいです。ここで

は、完全なソースです:http://jsfiddle.net/GMJ7y/

は今、私は苦労しています:時にはそれが時にはそれは完全な文だ、言葉です。今は言葉だけで動作させることができます。

私はどのように文章を書くことができますか?

+0

あなたは私の言葉で動作するコードを表示することができますか? – bozdoz

+0

オリジナルのjsfiddle.netは、例えば最後の単語 "word"で動作します。最後の文>が「他の言葉」に変更されました。私は知っている、非常に明白ではないが動作します:) –

答えて

4

次の解決策は、望ましい結果、およびを持っています。これはさらに効率的です。私は関連するコードだけを含んでいますが、実装のためにリンクされたバイブルを見てください。

var generatedReplace = [];   // Create list 
for(var key in dictionary) {  // Loop through the dictionary 
    var word = key.replace(/([[^$.|?*+(){}])/g, '\\$1'); 
    generatedReplace.push(word); // Adds RegExp-string to the list 
} 
generatedReplace = "\\b(?:" + generatedReplace.join("|") + ")\\b"; //Finish RegExp 
generatedReplace = new RegExp(generatedReplace, "g");   // Create RegExp 

// Implementation: 
$("body *").replaceText(generatedReplace, get_definition); 

フィドル:http://jsfiddle.net/GMJ7y/13/

+0

それは論理的に見えます。これはありがとうございます。しかし、それはjsfiddleで動作するように見えないか、それとも私ですか? –

+0

コードに2つのタイプミスがありました。今固定しました –

+0

すごい!!それは今働く、たくさんありがとう! –

関連する問題