RegEx匹配两种模式之间的所有内容(javascript)
RegEx Match everything between two patterns (javascript)
在下面的示例中,正则表达式必须匹配脚本标记之间的所有内容,包括脚本标记本身,但不能选择其他内容。
<unmodified html content> <script> * </script> <more unmodified html>
到目前为止,我得到的最接近的是:
(<script>)[^~]*(</script>)
测试标记:
<p> blah blah blah
</p> <span class="timestamp"><span class="hurrrp" id="faate_dd4dd">Nov 6, 2013</span>
<script>
if (FancyDate) FancyDate.add('derpaderp_1386447', 1385, 'MAIL_FORMAT');
</script>
</span>
<p> blah blah blah
</p> <span class="timestamp"><span class="hurrrp" id="faate_dd4dd">Nov 6, 2013</span>
<script>
if (FancyDate) FancyDate.add('derpaderp_1386447', 1385, 'MAIL_FORMAT');
</script>
</span>
你只需要让星星变得懒惰:
(<script>)[^~]*?(</script>)
REY Regex编辑器
我相信,如果你等待足够长的时间,会有人指出,"你不会用正则表达式解析HTML!"但只要没有人在你的JavaScript中放入,这应该没问题。
我也不太理解[^~]
的意义,但也许还有另一个我不知道的原因?
如果没有原因,你可以使用这个,以防有人偷偷输入波浪号:
(<script>)['s'S]*?(</script>)
雷
如果你使用XRegExp,你可以打开(s)dot-all标志,然后这样做:
(<script>).*?(</script>)
雷
我曾考虑使用否定的前瞻(?!</script>)
,但这不会在结果中得到体现,所以我放弃了它。
相关文章:
- 使用javascript单击同一按钮,在两种样式之间更改css值
- 这两种风格在Javascript中编写函数的区别是什么
- RegEx匹配两种模式之间的所有内容(javascript)
- 声明Javascript名称空间的两种方法之间的区别
- javascript动态下拉列表-两种形式相互依赖
- 这两种用 JavaScript 编写原型函数的方式有什么区别?
- 使用javascript将两种数字格式相加以返回长数字
- 这两种调用 JavaScript 匿名函数的类型有什么区别
- 为什么在Javascript中创建函数有两种不同的方法
- 如何将相同的 JavaScript 数据传递给 HTML 两种不同的方式
- JavaScript 自动滚动两种方式
- Javascript Switch 语句中的默认值仅适用于一种情况,但不适用于两种情况
- 在javascript中覆盖原型时,对象以两种状态存在
- 两种状态的三向切换(Javascript或jQuery)
- 使用一个具有两种形式的 JavaScript 函数
- JavaScript 对象,使用两种不同的调用函数方式查看预期结果
- JavaScript/jQuery中的两种格式有什么区别
- 使用Javascript在鼠标移动时在两种颜色之间切换
- 比较javascript/jquery中的两种日期格式
- 两种 JavaScript 对象类型之间的差异