js用正则表达式来匹配指定头和尾的字符

JavaScript06

js用正则表达式来匹配指定头和尾的字符,第1张

我看了一下你要替换的字符串的规律,都是以Sele和下横线开头,紧接一串数字,最后以@号结尾。根据这个规律,我写了以下正则表达式,已调试成功:

var reg = /Sele_\d+@/g  // 给变量reg赋值正则表达式

a = a.replace(reg, "")

// 代码解析:

// 正则表达式用两个/号装起来

// 其中\d表示数字

// 后面跟着+号表示匹配1个或多个数字

// 最后的字母g表示global(全局匹配),如果没有字母g则只匹配第一个……

希望能帮到你。

你好,按照你的描述,写了一个正则:

var str = 'sdabc:"sads",asdas,"abc":"d"}asdasdasd"abc":232]'

var reg = /abc(.*?)(?=[\]\},])/g

str.match(reg)// ['abc:"sads"', 'abc":"d"', 'abc":232']结果好像和你想得到的一样,希望是你想要的答案。

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