将javascript字符串转换为正则表达式

时间:2017-01-31 14:47:30

标签: javascript

我有以下

    function arrayInArray(chBox, values) {
        try {
            for (var y = 0; y < chBox.length; y++) {
                var stringConcat = "/\b" + chBox[x] + ",?\b/";
                var patt = new RegExp(eval(stringConcat));
                console.log("value to check: " + chBox[y] + " " + values + " index " + patt.test(values));

但我无法让它发挥作用。如果我把它改成这个

   var patt = new RegExp(/\b17,?\b/)

然后运行

      patt.test(values)

它工作正常。

我正在传递

   var checkbox = ["17", "23"];

谁能告诉我哪里出错了

感谢

有效的代码

            for (var y = 0; y < chBox.length; y++) {
                var stringConcat = "\\b" + chBox[y] + ",?\\b";
                var patt = new RegExp(stringConcat);
                if (patt.test(values) == false) return false;
            }

1 个答案:

答案 0 :(得分:0)

不需要eval因为它已经是一个字符串。只需将其传递给RegExp构造函数即可。您还应该删除前导和尾随/,因为它将被解释为表达式的一部分。