发布网友 发布时间:2022-04-23 13:26
共3个回答
热心网友 时间:2022-04-22 22:23
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:///");就好了,不过感觉比第一种麻烦了.用第一种的那个就好了
热心网友 时间:2022-04-22 23:41
以某个字符串开始 是用正则的 ^
以某个字符串结束 是用正则的 $
中间的所以字符 可以用 .*
. 表示任意字符
* 表示0次到多次匹配
举例:
var a = 'adsdfsefsdfsgsrgdsgasdfsadfe';热心网友 时间:2022-04-23 01:16
提问者你的编程思想缺泛灵活性,我的回答已经很明确了。如果这样的回答你不能明白理解证明你不适合做开发。