实现的效果:在字符串中abcdefgname='test'sddfhskshjsfsjdfps中获取name的值test
实现的机制:通过replace的回调函数获取。
可以通过下面的代码获取匹配部分
var str = "abcdefgname='test'sddfhskshjsfsjdfps"
var reg = /name='((\w|-|\s)+)/ig
str.replace(reg, function() {
console.log(arguments.length)//5
console.log(arguments[1])//test
})
字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。
var str = "BEGIN CONST a,b=10,c END IF a>10 && (a+c<20 || b>c) THEN RETURN true END ELSE RETURN false END END END"str=str.replace(/\s/g,"")//取掉空格
str=str.match(/IF(\S*)THEN/)[1]//正则取出IF和THEN之间的字符串
str=str.split("&&")//按照&&分组
var str_end=str[0].split('>') //按照>分组
alert(str_end)//最终结果为str_end[0]=a str_end[1]=10
这个直接用javascript的正则表达式取就可以了。
下面是简单的代码实现,仅供参考:
var a = 'asdfwlf!@#@##$%$%^SFDGD^%^%&&$#'console.log(a.match(/[\~!@#$%^&*-_]/g))
//这个结果是:["!", "@", "#", "@", "#", "#", "$", "%", "$", "%", "^", "S", "F", "D", "G", "D", "^", "%", "^", "%", "&", "&", "$", "#"],出来的是一个数组。
可以通过join的方式编程一个字符串。
console.log(a.match(/[\~!@#$%^&*-_]/g).join())
//结果是:!,@,#,@,#,#,$,%,$,%,^,S,F,D,G,D,^,%,^,%,&,&,$,#
如果不想要',' ,还可以再把','去掉。
console.log(a.match(/[\~!@#$%^&*-_]/g).join(''))
//结果是:!@#@##$%$%^SFDGD^%^%&&$#