一、基本語法:
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();
})
}