【发布时间】:2012-07-02 15:59:30
【问题描述】:
我有一个用 Javascript 文件的脚本标签填充的字符串,我想用 .min.js 替换所有 .js 实例。我不能假设字符串的内容将采用如下所示的相同格式。所以我需要将替换限制在 src= 部分内。
我假设正则表达式最适合这个,但我将如何进行查找,然后替换所有实例?
<script type=\"text/javascript\" src=\"../../Scripts/json.js\"></script><script type=\"text/javascript\" src=\"../../Scripts/Logger.js\"></script> <script type=\"text/javascript\" src=\"../../Scripts/PageHelper.js\"></script>
另一个考虑是我不想替换已经定义为 min.js 的 .min.js。
【问题讨论】:
-
为什么不直接使用Visual Studio的Find and Replace?
-
最好是正确输出页面 - 根据需要使用“.min.js”或“.js”... - 不需要危险的 RegEx 操作。
-
显然don't parse HTML with regex,因为如果您不能保证 HTML 的格式,它就不适合。
-
我不认为仅使用正则表达式就可以解决这个问题,至少很难做到 100% 安全。为什么不编写搜索 src= 标签的简短函数(并计算引号 %2 以确保它不在某些 x="...src"... 中,然后使用包含循环遍历所有包含 ".js 的结果) ”,如果没有“.min”,则在.js之前的索引处替换?这可以在2分钟内编程。
-
正如其他人所说,正则表达式不太适合这样的任务。你绝对需要使用它们(无法想象一个原因)还是你也会接受非正则表达式的解决方案?