我有条件检查数据来自服务的匹配函数,如下所示
$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] /克)
因为从服务中获取此数据
答案 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)