另一个正则表达式问题,是的,但是我的实现的上下文是在 Grunt 进程内,有一组已知的要迭代的文件,并且在这些文件中是已知的脚本标记组合。用户干扰的可能性为零,并且目标文件不会随时间变化。
以下是我想在单个正则表达式中捕获的组合:
<script>*</script>
<script type="text/javascript">*</script>
编辑:上述组合应排除:
<script src=""></script>
<script src="" type="text/javascript"></script>
<script SRC=""></script>
<script SRC="" TYPE="text/javascript"></script>
然后我需要第二个正则表达式来捕获以下内容:
<!--[if lt IE 9]><script>*</script><![endif]-->
最后是第三个正则表达式来捕获以下内容:
<!--[if lte IE 9]><script>*</script><![endif]-->
请不要组合正则表达式,因为我需要每个正则表达式有不同的结果。
作为引用,我已经完成了这个SO答案q/a:Removing all script tags from html with JS Regular Expression
但是他们捕获的内容太多了,并且没有任何建议可以为我需要单独处理的条件 IE 注释提供单独的正则表达式。
此外,我已经尝试了 grunt-dom-munger
,但是有太多不良结果,因此我正在尝试一种简化的解决方案,涉及在 grunt- 内具有不同结果的正则表达式操作文本替换
。
非常感谢你们聪明的正则表达式人员!
最佳答案
第一个正则表达式:
<script(?: type.*)?>.*<\/script>
第二个正则表达式:
<!--\[if lt IE 9\]><script>.*<\/script><!\[endif\]-->
第三个正则表达式:
<!--\[if lte IE 9\]><script>.*<\/script><!\[endif\]-->
匹配第二个和第三个的正则表达式:
<!--\[if lte? IE 9\]><script>.*<\/script><!\[endif\]-->
关于已知脚本标签组合的 Javascript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37425800/