【问题标题】:Detect backslash in img src with regular expression使用正则表达式检测 img src 中的反斜杠
【发布时间】: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 = '&lt;img src="file:///C:\DOCUME~1\user\CONFIG~1\Temp\msohtml1\02\clip_image002.jpg" style="float:left; height:145px; width:193px" /&gt;';

但是当我声明“str”没有“\”时,我该如何解决?我不能手动,因为这个字符串是自动的。

我使用它来将 URL 推送到数组中

var m,urls = [];
    while ( m = rex.exec( str ) ) {
            urls.push( m[1] );
        }
            alert( urls ); 

我使用了所有的正则表达式,但它们总是返回相同的文本:

file:///C:DOCUME~1cCanadasCONFIG~1Tempmsohtml1clip_image002.jpg

我知道这是因为正则表达式没有检测到反斜杠,但我不知道在哪里或如何为此编写正则表达式。

第二个问题

示例: 我在一个字符串中有这个文本:

块引用

&lt;img src="file:///C:\DOCUME~1\cCanadas\CONFIG~1\Temp\msohtml1\01\clip_image002.jpg" style="float:left; height:145px; width:193px"&gt;&lt;/a&gt;&lt;/a&gt;&lt;img src="file:///C:\DOCUME~1\cCanadas\CONFIG~1\Temp\msohtml1\01\clip_image004.jpg" style="float:left; height:192px; width:256px"&gt;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


【解决方案1】:

您只需要转义 \ 字符:

Before : <img [^>]*src="([^>"]+\/([^>"]+))"[^>]*?>
After  : <img [^>]*src="([^>"]+\\/([^>"]+))"[^>]*?>

Before : <img.*?src="(.*?\/([^/"]*))".*?>
After  : <img.*?src="(.*?\\/([^\/"]*))".*?>

Before : <img.*?src="([^">]*\/([^">]*?))".*?>
After  : <img.*?src="([^">]*\\/([^">]*?))".*?>

【讨论】:

  • 现在可以使用@loentar 的指示,你知道我可以在img 中自动转义src 的网址吗?
  • 我不明白你的意思。一个例子可能会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
  • 2015-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多