Обнаружение обратной косой черты в img src с помощью регулярного выражения

РЕДАКТИРОВАТЬ: ЭТО СООБЩЕНИЕ ИСПРАВЛЕНО, ЧИТАЙТЕ ДАЛЬШЕ ВНИЗ ДЛЯ ДОПОЛНИТЕЛЬНОЙ ПОМОЩИ

У меня есть разные регулярные выражения:

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-адрес, строка не обнаруживает символ "\", потому что он экранирован

И этот URL (например):

переменная ул = '<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

Я знаю, это потому, что регулярное выражение не обнаруживает обратную косую черту, но я не знаю, где и как я могу написать регулярное выражение для этого.

ВТОРАЯ ПРОБЛЕМА

ПРИМЕР: у меня есть этот текст в одной строке:

Blockquote

<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 sit amet, vestibulum a nulla. Fusce pulvinar diam dapibus nunc posuere, at

How I can detect the SRC of IMG and change your backslashes by forward slashes?

Был бы признателен за вашу помощь! Большое спасибо!

P.d: Если вы можете написать ответ на JavaScript, но если вы знаете другое, для меня не проблема-


person CristianCV    schedule 02.04.2014    source источник
comment
похоже, что str заполняется неправильно, вы должны избежать символа обратной косой черты, иначе вы получите такую ​​​​строку. Попробуйте отобразить str после того, как вы его назначите (var str= ...; alert(str))   -  person loentar    schedule 02.04.2014
comment
Правда, как я могу сделать это автоматически? Я хочу обнаружить src в тексте, а затем заменить их другими, которые у меня есть.   -  person CristianCV    schedule 02.04.2014


Ответы (1)


Вам просто нужно экранировать символы \:

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

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

Before : <img.*?src="([^">]*\/([^">]*?))".*?>
After  : <img.*?src="([^">]*\\/([^">]*?))".*?>
person l'L'l    schedule 02.04.2014
comment
Теперь работает с указанием @loentar, вы знаете, как я могу автоматически избежать URL-адресов src в img? - person CristianCV; 02.04.2014
comment
Я не понимаю, что вы имеете в виду. Пример может помочь. - person l'L'l; 02.04.2014