javascript js正则如何匹配以某字符串开始以某字符串结束的字符串中的字符?

我想用js匹配以file:///开头,以"结尾的字符串中的/符号如vara='<div><a><imgsrc="file:///c:/ssd/ads.jpg"></a><... 我想用js匹配以file:///开头,以"结尾的字符串中的/符号

var a='<div><a><img src="file:///c:/ssd/ads.jpg"></a></div>';
我想把c:/ssd/ads.jpg替换成c:\ssd\ads.jpg.
这个正则该怎么写?
忘了说明了file:///后面的是硬盘路径,可能有各种的特殊符号空格,除了window命名文件夹时不允许的那几个都有可能出现。我之前没说清楚,我的错。。
展开
 我来答
末日长天
推荐于2017-09-25
知道答主
回答量:4
采纳率:0%
帮助的人:7.7万
展开全部

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:///");就好了,不过感觉比第一种麻烦了.用第一种的那个就好了

woshixindong
2012-03-24 · TA获得超过432个赞
知道小有建树答主
回答量:268
采纳率:100%
帮助的人:306万
展开全部
提问者你的编程思想缺泛灵活性,我的回答已经很明确了。如果这样的回答你不能明白理解证明你不适合做开发。

var a='<div><a><img src="file:///c:/ssd/ads.jpg"></a></div>';
//注释这段就不就可以了吗a=a.replace(/file\:\/\/\//gi,"")
//去file:///
a.replace(/([\:\w])\/(\w)/gi,"$1\\$2")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2571d37bb
推荐于2017-10-04 · 知道合伙人软件行家
百度网友2571d37bb
知道合伙人软件行家
采纳数:1971 获赞数:7905
前端工程师

向TA提问 私信TA
展开全部
  1. 以某个字符串开始  是用正则的 ^

  2. 以某个字符串结束  是用正则的 $

  3. 中间的所以字符 可以用 .*      

    1. . 表示任意字符

    2. * 表示0次到多次匹配

    举例:

    var a = 'adsdfsefsdfsgsrgdsgasdfsadfe';
     /^a.*e$/.test(a)        //返回true;


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式