已知脚本标签组合的 Javascript 正则表达式

标签 javascript regex gruntjs

另一个正则表达式问题,是的,但是我的实现的上下文是在 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/

相关文章:

javascript - 触摸不适用于 Twitter Bootstrap 模板中的移动浏览器

javascript - jquery 仅在选择时显示 id 选项 {help}

regex - 下划线命名约定正则表达式

java - Java 中的正则表达式模式用于查找和删除重复的电子邮件

javascript - Gruntfile.js 任务无法读取包值?

javascript - 如何从 grunt 任务中运行 grunt 任务?

javascript - 用户定义对象的原型(prototype)有什么作用?

javascript - 如何检查 DOM 中是否存在 id(已经使用长度概念)?

php - 正则表达式,其中数字可以连续以 9 但不能以 999 开头

gruntjs - Gruntfile.js 只丑化更改的文件