编辑:此帖子已修复,请阅读更多内容以获取更多帮助
我有这些不同的正则表达式:
var rex=new RegExp('<img.*?src="(.*?\/([^/"]*))".*?>', 'g')
var rex=new RegExp('<img [^>]*src="([^>"]+\/([^>"]+))"[^>]*?>', 'g')
var rex=new RegExp('<img.*?src="([^">]*\/([^">]*?))".*?>', 'g')
SOLUTION:
After : <img [^>]*src="([^>"]+\\/([^>"]+))"[^>]*?>
After : <img.*?src="(.*?\\/([^\/"]*))".*?>
After : <img.*?src="([^">]*\\/([^">]*?))".*?>
SOLUTION:
当我声明网址时,字符串没有检测到“\”,因为没有转义
这个网址(例如):
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。在lectus vestibulum commodo的Quisque dignissim libero。 Nunc vel augue augue。 Sed vel magna egestas,laoreet nulla nec,aliquet velit。 Quisque augue quam,eleifend non sollicitudin sit amet,vestibulum a nulla。 Fusce pulvinar diam dapibus nunc posuere,at
如何检测IMG的SRC并通过正斜杠更改反斜杠?
非常感谢您的帮助! 非常感谢你!
P.d:如果你能用JavaScript编写答案,但如果你知道其他没问题的话 -
答案 0 :(得分:2)
您只需要转义\
个字符:
Before : <img [^>]*src="([^>"]+\/([^>"]+))"[^>]*?> After : <img [^>]*src="([^>"]+\\/([^>"]+))"[^>]*?> Before : <img.*?src="(.*?\/([^/"]*))".*?> After : <img.*?src="(.*?\\/([^\/"]*))".*?> Before : <img.*?src="([^">]*\/([^">]*?))".*?> After : <img.*?src="([^">]*\\/([^">]*?))".*?>