实现的效果:在字符串中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() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。
通过正则表达式和replace对所有字符a和A进行替换。
<script>
var str = 'abdAca';//定义一个字符串。
alert(str.replace(new RegExp('a','gi'),'B'));//通过正则表达式进行替换。
</script>。
补充:
RegExp:正则表达式对象,第一个参数表示要替换的字符,第二个参数gi中g表示全局匹配,i表示忽略大小写。
replace:替换字符串,第一个参数,被替换的字符串,第二个参数要替换的字符串。
正则表达式好像不能一次替换成不同的,
正则表达式可以把特定字符串的每一部分替换成不同的字符串。
例如:
<script type="text/javascript">。
var str="<test><test><test>"。
str = str.replace(/<(test)><(test)><(test)>/g, "[$1]b$2bc$3c")。
document.write(str);。
</script>。
但是不能把一段字符串的每一个相同字符换成不同字符,只能每一个去判断。
你的目的是把D2 E3 F4的值相加,得到他们的和。这个不需要替换的,js数字直接相加就可以。
var D2=5,E3=10,F4=20;。
var str = parseInt(D2)+parseInt(E3)+parseInt(F4); //parseInt是把字符转数字。
alert(str);
这样str的值就是D2 E3 F4相加的结果。
这个函数是js的字符串替换函数,这个函数有两个参数,第一个函数可以是字符串或正则表达式(用以进行匹配的子字符串),第二个函数是字符串(替换匹配的子字符串)。就是在原字符串上把和第一个参数相同的字符串替换成第二个参数的字符串。
你这个例子使用的是正则表达式匹配字符串,其中"/ /"这个是固定写法,"\s"是转移符号用以匹配任何空白字符,包括空格、制表符、换页符等等,"g"表示全局匹配将替换所有匹配的子串,如果不加"g"当匹配到第一个后就结束了。这个例子的意思就是将原字符串中的所有空白字符替换成"",比如"abc d efg "字样的字符串使用这个函数后将变成"abcdefg"。