【发布时间】:2014-04-02 12:05:36
【问题描述】:
编辑:这篇文章已修复,请阅读更多内容以获得更多帮助
我有这个不同的正则表达式:
var rex=new RegExp('<img.*?src="(.*?\/([^/"]*))".*?>', 'g')
var rex=new RegExp('<img [^>]*src="([^>"]+\/([^>"]+))"[^>]*?>', 'g')
var rex=new RegExp('<img.*?src="([^">]*\/([^">]*?))".*?>', 'g')
解决方案:
After : <img [^>]*src="([^>"]+\\/([^>"]+))"[^>]*?>
After : <img.*?src="(.*?\\/([^\/"]*))".*?>
After : <img.*?src="([^">]*\\/([^">]*?))".*?>
解决方案:
当我声明 url 时,字符串没有检测到“\”,因为没有被转义
还有这个网址(例如):
var str = '<img src="file:///C:\DOCUME~1\user\CONFIG~1\Temp\msohtml1\02\clip_image002.jpg" style="float:left; height:145px; width:193px" />';
但是当我声明“str”没有“\”时,我该如何解决?我不能手动,因为这个字符串是自动的。
我使用它来将 URL 推送到数组中
var m,urls = [];
while ( m = rex.exec( str ) ) {
urls.push( m[1] );
}
alert( urls );
我使用了所有的正则表达式,但它们总是返回相同的文本:
file:///C:DOCUME~1cCanadasCONFIG~1Tempmsohtml1clip_image002.jpg
我知道这是因为正则表达式没有检测到反斜杠,但我不知道在哪里或如何为此编写正则表达式。
第二个问题
示例: 我在一个字符串中有这个文本:
块引用
<img src="file:///C:\DOCUME~1\cCanadas\CONFIG~1\Temp\msohtml1\01\clip_image002.jpg" style="float:left; height:145px; width:193px"></a></a><img src="file:///C:\DOCUME~1\cCanadas\CONFIG~1\Temp\msohtml1\01\clip_image004.jpg" style="float:left; height:192px; width:256px">Ut elementum tempor quam, vel accumsan quam interdum nec. Quisque porta urna convallis, posuere diam in, sodales quam。 Mauris ligula magna, sollicitudin id egestas at, pharetra eget erat。 Quisque dignissim libero in lectus vestibulum commodo。 Nunc vel augue augue。 Sed vel magna egestas、laoreet nulla nec、aliquet velit。 Quisque augue quam,eleifend non sollicitudin sat amet,前庭无核。 Fusce pulvinar diam dapibus nunc posuere,在
如何检测 IMG 的 SRC 并通过正斜杠更改您的反斜杠?
非常感谢您的帮助! 非常感谢!
P.d:如果你能用 JavaScript 写出答案,但如果你知道其他对我来说没问题-
【问题讨论】:
-
看起来 str 填充不正确,你应该转义反斜杠符号,否则你会得到这样的字符串。分配后尝试显示 str (
var str= ...; alert(str)) -
这是真的,我怎么能自动做到这一点?我想要的是检测文本中的 src,然后用我拥有的其他人替换它们。
标签: javascript regex regular-language