2

我在变量中搜索变量时遇到问题。我拥有的代码是:

var str = "13, 12, 12, 12";

//Look for string = 13 in str.
var string = 13;

var patt = "/" + string + "/g";
var result = patt.test(str);

我的错误是什么?

4

3 回答 3

5

采用

var patt = new RegExp(string, 'g');

建立你的模式。该/something/g构造不能用于动态模式。

请参阅MDN 关于正则表达式的文档

于 2012-10-15T16:06:55.693 回答
2

我建议使用indexOf如下功能:

var str="13, 12, 12, 12";
var string= "13";
var result = str.indexOf(string)>=0;
于 2012-10-15T16:09:27.520 回答
0

如果您试图获得indexOf13 in 的第一个值str,我会执行以下操作:

var str = "13, 12, 12, 12";
var string = "13";
var result = str.match(/\d{1,}/g).indexOf(string); //returns 0

仅当str值为 13 时才会匹配。例如,131 不会像您当前的代码那样匹配。如果您尝试测试 13 中是否存在值str,我会执行以下操作:

var str = "13, 12, 12, 12";
var string = "13";
var result = (str.match(/\d{1,}/g).indexOf(string) !== -1); //Returns true
于 2012-10-15T16:40:03.060 回答