String 对象之 replace方法

一、基本语法:

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();

})

}

你可能感兴趣的:(String 对象之 replace方法)