gpt4 book ai didi

Javascript new RegExp vs./pattern/和多行

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:50:03 24 4
gpt4 key购买 nike

为什么/pattern/匹配,但 RegExp 不匹配?

<div id="foo">
##content##
<h1>works!</h1>
##/content##
</div>

<script>
var str = document.getElementById("foo").innerHTML;
console.log(str);

var r = new RegExp("##content##([\S\s]*)##\/content##", "img");

console.log(r.exec(str)); //null
console.log(str.match(/##content##([\S\s]*)##\/content##/img)); //matches
</script>

最佳答案

问题是这一行:

var r = new RegExp("##content##([\S\s]*?)##\/content##", "img");

应该替换为:

var r = new RegExp("##content##([\\S\\s]*?)##\/content##", "img");

原因: 了解 RegExp 对象以 String 作为参数来构造,您需要对 \S\s 进行双重转义由 RegEx 引擎正确解释,因此 \S 应该成为 \\S 而\s 应该成为你的正则表达式中的 \\s

关于Javascript new RegExp vs./pattern/和多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16239501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com