JavaScript正则表达式的替换问题 \<script(?: .+?)\>[\w\W]*?\</script\> 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /<script[^>]*>[\s\S]*?<\/script>/g 我经常用的: <script.*?</script>就这么简单!楼主结帖散分! <script.*?</script> 里面有个换行就匹配失败了..... /<script[^>]*>[\s\S]*?<\/script>/g 效率最高而且适应各种情况1楼的<scriptlanguage="javascript">...</script>或者<script>...</script>时就无法匹配 /<script[^>]*>[\s\S]*?<\/script>/g gzdiablo() ( ) 信誉:100 Blog 2007-03-23 16:29:20 得分: 0 /<script[^>]*>[\s\S]*?<\/script>/g 效率最高而且适应各种情况1楼的<scriptlanguage="javascript">...</script>或者<script>...</script>时就无法匹配-------------<scriptlanguage="javascript">...</script>是无法匹配,那是我偷懒了<script>...</script>无法匹配?你看测试过了吗?对于\<script(?: .+?)\>的写法我认为还是比较合理的,这指定了这个标签名必须是script,即script标签中如果有其它属性的话需加一个空格再列属性值.如<script language="jscript">这个空格是必须的假如有一个用户自定义的标签<script2>,那么你的正则就会产生错误了. 这个问题如果是IE5.5以后的版本建议写成<script(?=[\s>])[^>]*>[\s\S]*?</script> 再纠定你一个吧/<script[^>]*>[\s\S]*?<\/script>/g很明显的参数应该是ig前面的我就不帮你改了 这个问题如果是IE5.5以后的版本建议写成<script(?=[\s>])[^>]*>[\s\S]*?</script>--------倒不如写成<script(?:\s+.*?)>[\w\W]*?</script>可读性好一点 写漏了,应该是<script(?:\s+.*?)?>[\w\W]*?</script> 反而<script>...</script>的情况出现的可能性 比<script2>出现的可能性要大得多 你的表达式的确有可参考的部分 参考你的写法 我又写了一条<script(?:\s[^>]*)?>[\s\S]*?</script>.*?是正则匹配中效率最低的而且不能匹配换行符 请尽量不要使用贪婪匹配的效率高与非贪婪匹配 *效率高于 *? 请注意所以使用[^>]* 效率远高于.*? 在匹配整站网页代码的时候效率差距是很明显的[\w\W]的确有与[\s\S]一样的效果 但[\s\S]效率稍微高于[\w\W] 因为\s只有空和换行2 种情况 而\w \W 所匹配的情况则非常多效率自然低很多 <script.*?>(\n|\r|.)*?<\/script> gzdiablo() ( 五级(中级))是专门搞正则的吧,好象有个专业网站是你搞的?? gzdiablo():<script.*?</script> 里面有个换行就匹配失败了.....-------------------------------------不是还有一个m(multiline) 标志吗?/<script.*?<\/script>/igm 没搞过什么网站 估计不是我但搞过.net的网页剪裁 分析网页代码等等所以正则还是满精的最近主要心思都是javascript Click the link to solve your problem.Good luck! 百度百科的发起质疑功能,如何实现对质疑文字的定位? 关于保存用户名和密码问题 求使用随机函数使鼠标永远点不到按钮 请你帮我看一下这段程序,错误提示;缺少对象 这个问题越改越糟,郁闷死了 急!为何用parseFloat("1,234.12")怎么得不到值1234.12,应该用什么函数? 急,初学小问题 参数传递的问题 EXT换皮肤问题 关于原型链问题请前辈指教 怎样刷新触发父窗体的按钮事件. 弹出的confirm对话框,能得到按钮button的文本并修改吗?
1楼的
<script
language="javascript">
...
</script>
或者
<script>
...
</script>时就无法匹配
/<script[^>]*>[\s\S]*?<\/script>/g 效率最高而且适应各种情况
1楼的
<script
language="javascript">
...
</script>
或者
<script>
...
</script>时就无法匹配
-------------<script
language="javascript">
...
</script>
是无法匹配,那是我偷懒了<script>
...
</script>
无法匹配?你看测试过了吗?对于\<script(?: .+?)\>的写法我认为还是比较合理的,这指定了这个标签名必须是script,即script标签中如果有其它属性的话需加一个空格再列属性值.如
<script language="jscript">
这个空格是必须的
假如有一个用户自定义的标签<script2>,那么你的正则就会产生错误了.
<script(?=[\s>])[^>]*>[\s\S]*?</script>
/<script[^>]*>[\s\S]*?<\/script>/g
很明显的参数应该是ig
前面的我就不帮你改了
<script(?=[\s>])[^>]*>[\s\S]*?</script>
--------
倒不如写成
<script(?:\s+.*?)>[\w\W]*?</script>
可读性好一点
<script(?:\s+.*?)?>[\w\W]*?</script>
<script(?:\s[^>]*)?>[\s\S]*?</script>.*?是正则匹配中效率最低的而且不能匹配换行符 请尽量不要使用
贪婪匹配的效率高与非贪婪匹配 *效率高于 *? 请注意
所以使用[^>]* 效率远高于.*? 在匹配整站网页代码的时候效率差距是很明显的[\w\W]的确有与[\s\S]一样的效果 但[\s\S]效率稍微高于[\w\W]
因为\s只有空和换行2 种情况 而\w \W 所匹配的情况则非常多效率自然低很多
<script.*?</script> 里面有个换行就匹配失败了.....-------------------------------------
不是还有一个m(multiline) 标志吗?/<script.*?<\/script>/igm
但搞过.net的网页剪裁 分析网页代码等等
所以正则还是满精的
最近主要心思都是javascript