我的测试RegExp with pattern before返回null。如何让它返回2?
s = new RegExp(/(?=ID\=)(\d+)/).exec("ID=2");
答案 0 :(得分:3)
(?=)
是一个先行断言。你想使用lookbehind,JavaScript不支持。但是,这样可以正常工作:
s = /ID=(\d+)/.exec('ID=2')[1];
// or
s = new RegExp('ID=(\\d+)').exec('ID=2')[1];
不要将正则表达式文字传递给RegExp
构造函数 - 这是没有意义的。
但是,真的,你为什么不分开=
?
s = 'ID=2'.split('=')[1];
答案 1 :(得分:0)
如果您只想提取数字部分,请尝试关注..
"ID=2".match(/\d+/)[0]
或只是
"ID=2".match(/\d+/)
答案 2 :(得分:0)
if("ID=2".match(new RegExp(/ID\=(\d+)/)))
alert("Matched" + RegExp.$1);
else
alert("No Match");
试试吧!
您需要使用String.match()