2011-11-17 12 views
3

彼のアジア料理について「Sensasianal」という言葉を使いたい人のためにウェブサイトを構築しています。アジアの言葉は、このように、私は.replace()を使用してjQueryの中で達成するために管理し、別の色を使用して、常に取り出している: -Jqueryはテキストを置き換えますが、大文字と小文字を区別します

replaceAsian.html(replaceAsian.html().replace(/sasiana/ig, "s<em>asian</em>a")); 

私はその後、別の色で要素をスタイルすることができます。

ただし、元のテキストが大文字の場合、結果は大文字と小文字が区別されます。

だから私はこの

replaceAsian.html(replaceAsian.html().replace(/SASIANA/ig, "S<em>ASIAN</em>A")); 
replaceAsian.html(replaceAsian.html().replace(/sasiana/ig, "s<em>asian</em>a")); 

を試みたが、結果はまだ混在する場合です。

誰かがテキストの変更方法を教えてもらうことができますが、元のケースを保持していれば、私は助けていただければ幸いです。どうもありがとう。

答えて

8

は一致するテキストを再利用するため、大文字と小文字を区別しません。

iは大文字小文字の区別をしないフラグであり、gは、gフラグがないと起こるような最初のものではなく、すべてのオカレンスに一致することを意味します。

JSの正規表現機能の概要については、MDNを参照してください。

+0

このソリューションをお寄せいただき、ありがとうございます。私は正規表現が私にとって完全な謎であることを認めなければなりません。 – Andrew

+0

心配はいりません。リンクされたMDNの記事は一般的にそれらを説明するのに非常に良い仕事をしています。正規表現は、使用方法が分かっていれば非常に強力です。 – Gijs

1
replaceAsian.html(replaceAsian.html().replace(/SASIANA/g, "S<em>ASIAN</em>A")); 
replaceAsian.html(replaceAsian.html().replace(/sasiana/g, "s<em>asian</em>a")); 

regexpの追加情報については、this pageを参照してください。

+0

私は文字通り、私はあなたが答えた際、「IG」が何を意味するのか理解していなかったと言うことは、私の投稿を編集するつもりでした。 – Andrew

+0

それは私の問題の解決策です。ご協力ありがとうございました。あなたが気にしないなら、なぜこれがうまくいったのか教えていただけますか? igは無視するケースですか? – Andrew

+0

しかし、「アシアン」はどうですか? –

4
replaceAsian.html(replaceAsian.html().replace(/(S)(ASIAN)(A)/ig, "$1<em>$2</em>$3")); 

jsFiddle to prove

+0

あなたのソリューションをありがとう、私は受け入れられた答えとして複数の答えを選択することはできません残念です。 – Andrew

+1

心配はいりません。彼が私がしたよりもはるかに多くの背景情報を与えたので、Gijsは受け入れに値する。 –

+0

優雅なコメントありがとう - 私はJSフィドルを忘れました。 :-) – Gijs

関連する問題