为什么以下javascript正则表达式在Firefox中有效,但在IE中无效(在IE8上进行测试)。
myregexp = eval('/(?:^|;)\s*(\d+)\s*:[^;]*?megason[^;]*/gi');
myregexp.exec('0:QL12345ABC - MEGASONIAC BEST CAFE;'); //returns null in IE8
答案 0 :(得分:1)
你必须添加斜杠:
myregexp = eval('/(?:^|;)\\s*(\\d+)\\s*:[^;]*?megason[^;]*/gi');
但正如克里所说,eval在这种背景下并不好用,而是使用:
myregexp = /(?:^|;)\s*(\d+)\s*:[^;]*?megason[^;]*/gi;
或
myregexp = new RegExp('(?:^|;)\\s*(\\d+)\\s*:[^;]*?megason[^;]*','gi');
答案 1 :(得分:0)
不建议使用eval,在这种情况下没有理由使用它。
另外,我会查看这个清单:
http://www.javascriptkit.com/javatutors/redev3.shtml
要查看是否要使用exec。