JavaScript: 正则表达式 exec 匹配方法返回null (Edge中有此异常)

JS 正则表达式在Chrome/Firefox 中返回正常(<header>...</header>),在Edge 中返回null 。 Demo如下:

var regexp = new RegExp("<header.*(?=)(.|\n)*?<\/header>", "g");
var str = "<body><header><h2>Title</h2></header><footer>footer</footer></body>";

var result = regexp.exec(str);
alert(result);

JSFiddle: (在不同浏览器中打开-测试)
https://jsfiddle.net/JSDavi/k...

请各位帮忙解惑。

阅读 4.1k
3 个回答

写的有问题把 <header.*(?=.|\n)*?</header>

<header>([\s\S]*?)</header>

已找到了答案。感谢楼上的各位。

但还是:对这个问题中的正则表达式,在不同浏览器中的匹配规则结果不同表示不理解, 也许到了我该忽视IE的时候了?

最终为:

<header[^>]*>((.|\n)*?)\<\/header>

JSFiddle: https://jsfiddle.net/JSDavi/k...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题