1

我在这里有一个 jsfiddle - http://jsfiddle.net/stevea/mrQEz/1/ - 我在使用带有变量模式的 JavaScript search() 函数时遇到了问题。

代码在 div.answer 中搜索您在过滤器字段中输入的单词。我希望搜索不区分大小写,因此我想在搜索模式的末尾获得“i”标志。如果我直接输入 /background/i 作为搜索模式,在 JavaScript 的第 9 行,我在文本中找到“背景”很好。但是,如果我在过滤器字段中输入“背景”并尝试从

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

它不起作用,即使术语中似乎有正确的东西:/background/i.

有没有人看到问题?谢谢。

4

1 回答 1

6

在 JavaScript 中有两种创建正则表达式的方法。首先是字面语法:

term = /background/i;

但是如果你想将字符串转换为正则表达式,你需要调用RegExp构造函数:

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

你可以看到它在这里工作。

于 2013-08-08T03:05:00.847 回答