一、基本语法:
replace(regexp|substr, newSubStr|function[, flags]);
二、参数介绍:
1)参数一:
a)regexp:一个 RegExp 对象.该正则所匹配的内容会被第二个参数的返回值替换掉.
b)substr:被替换掉的一个 String.
2)参数二:
a)newSubStr:替换掉第一个参数在原字符串中的匹配部分.该字符串中可以内插一些特殊的变量名.
$$
插入一个 "$"。$&
:插入匹配的子串。$
` :插入当前匹配的子串左边的内容。$'
:插入当前匹配的子串右边的内容。$n or $nn
:假如第一个参数时 RegExp对象,并且n或nn是个十进制的数字,那么插入第n个括号匹配的字符串。
b)function(match,[p1,p2,...,p99],offset,string)
:创建新的子串,参数解释如下.
match
:匹配的子串(对应于上述的$&
)p1,p2,...p99
:第n个括号子匹配字符串,提供替换的第一个参数是一个正则表达式对象。offset
:匹配子串在字符串中的开始位置(从0开始),例如"abcd",正则/bc/,offset = 1.string
:当前操作的字符串
3)参数三(可选,在V8内核(chrome and nodejs)中不起作用):
flags
:指定正则表达式的匹配模式,可选值:g
:全局替换i
:忽略大小写m
:多行替换y
:?
三、实战
1、字符串倒置
function(str){
return str.replace(/(\w+)(\s+)(\w+)/g,"$3$2$1");
}
2、一般式转化为驼峰式
function(str){
return str.replace(/-(\w)/g,function(str,$1){
return $1.toUpperCase();
})
}
3、驼峰式转化为一般市
function(str){
return str.replace(/[A-Z]/g,function(str){
return "-"+str.toLowerCase();
})
}