我们可以用字符串变量检查match()函数吗?

时间:2017-09-23 12:50:56

标签: javascript regex

我有条件检查数据来自服务的匹配函数,如下所示

$output the data->saveXML();

我该如何纠正这个问题。我在下面的代码中得到了正确的输出

var a = "daadvavda";
var b = "/[a-zA-Z]/g";
var c = a.match(b); 
console.log(c) 
// output will be null 

我不能像这样提供我的数据

  

匹配(/ [A-ZA-Z] /克)

因为从服务中获取此数据

4 个答案:

答案 0 :(得分:2)

使用动态字符串作为模式,可以使其像

一样工作
var a = "daadvavda";
var b = new RegExp("stringYouGetFromService", 'g');
var c = a.match(b);
console.log(c);

答案 1 :(得分:1)

首先从模式中删除",它应该是var b = /[a-zA-Z]/g;

如果您想使用字符串,请使用RegExp

var a = "daadvavda";
var b = new RegExp("[a-zA-Z]", "g");

匹配

console.log(a.match(b)); 
//Output: (9) ["d", "a", "a", "d", "v", "a", "v", "d", "a"]

regex.test()

console.log(b.test(a)); 
//Output: true

答案 2 :(得分:1)

如果你的字符串包含带有分隔符(/)和开关(/gi)的regexp,就像这种情况一样("/[a-z]/gi"),那么你必须创建一个正则表达式该字符串中的对象然后使用它。但是要做到这一点,我们必须删除分隔符/之间的正则表达式部分。

var a = "daadvavda",
    b = "/[a-zA-Z]/g",
   rs = b.split("/"),
    r = new RegExp(rs[1],rs[2]),
    c = a.match(r); 
console.log(c);

答案 3 :(得分:0)

您需要创建一个RegExp对象。请考虑阅读matchRegExp

的文档