1

私はここに jsfiddle を持っています - http://jsfiddle.net/stevea/mrQEz/1/ - 可変パターンで JavaScript search() 関数を使用するのに問題があります。

コードは、フィルタ フィールドに入力した単語を div.answer で検索します。検索で大文字と小文字を区別しないようにしたいので、検索パターンの最後に「i」フラグを付けたいと思います。JavaScript の 9 行目で /background/i を検索パターンとして直接入力すると、テキスト内に "Background" が表示されます。しかし、フィルター フィールドに「background」と入力して検索パターンを作成しようとすると、

term = "/" + this.value + "/i";

term には /background/i という正しいものが含まれているように見えますが、機能しません。

誰かが問題を見ていますか?ありがとう。

4

1 に答える 1

6

JavaScript で正規表現を作成するには、2 つの方法があります。1 つ目はリテラル構文です。

term = /background/i;

ただし、文字列を正規表現に変換する場合は、RegExpコンストラクターを呼び出す必要があります。

term = new RegExp(this.value, "i");

ここで動作することがわかります。

于 2013-08-08T03:05:00.847 に答える