var?a='<div><a><img?src="file:///c:/ssd/ads.jpg"></a></div>';
while?(/(file\:\/\/\/[^\/]*)\/(.*\")/.test(a))?a?=?a.replace(/(file\:\/\/\/[^\/]*)\/(.*\")/,?"$1\\$2");
這樣可以替換file:///開頭,以"結尾的字符串中的所有/符號了,由於要匹配file:///開頭,以"結尾,?正則中必須在開始加上file\:\/\/\/?結尾加上\".而加上了這,replace方法的時候就算正則加上g,也是只替換壹次了.所以加個WHILE循環.就可以全部替換了.不過正則還不能定義為變量.定義了變量,下面用變量的話,還是只替換壹次,這我也不清楚是為什麽了,可能跟Js中正則表達式對象的某些屬性有關吧.
不太懂Js,就學了四天...
這種情況最好把中間這串拿出來?替換好再放回去?如下
var?a='<div><a><img?src="file:///c:/ssd/ads.jpg"></a></div>';
var?re?=?/file\:\/\/\/.*\"/;? var?b?=?re.exec(a)[0];//拿到整個字符串中以file:///開頭,以"結尾的字符串 b?=?b.replace(/\//g,?"\\");?//把拿到的字符串中的/全部替換成\ b?=?b.replace(/file\:\\\\\\/,?"file:///"); a?=?a.replace(re,?b);?第壹種的那個沒問題的.第二個仔細看了下,是我大意了,加上壹句?b?=?b.replace(/file\:\\\\\\/,?"file:///");就好了,不過感覺比第壹種麻煩了.用第壹種的那個就好了