Javascript中replace()的一些用法总结
关于定义
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
关于语法
stringObject.replace(regexp/substr,replacement)
关于参数
参数 | 描述 |
regexp/substr |
必需。规定子字符串或要替换的模式的 RegExp 对象。 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。 |
replacement | 必需。一个字符串值。规定了替换文本或生成替换文本的函数。 |
1、第一个参数regexp/substr,使用正则表达式时用全局标识符g,可以替换所有匹配的子串,否则只会匹配一次。
例如:
var str = "aaaaa"; var str1 = str.replace("a", "b"); var str2 = str.replace(/a/g, "b");
运行结果: str1 -> "baaaa",str2 -> "bbbbb"
2、第二个参数replacement,可以是字符串或者function,也可以是$字符具有的特定的含义。
字符 | 替换文本 |
---|---|
$1、$2、...、$99 | 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。 |
$& | 与 regexp 相匹配的子串。 |
$` | 位于匹配子串左侧的文本。 |
$' | 位于匹配子串右侧的文本。 |
$$ | 直接量符号。 |
a. function的例子:
var str = "111222aa"; str.replace(/(\d{3})/g, function(word){ return "b"; });
运行结果: "bbaa"
b. $的例子
var str = "1234567890"; str.replace( /(\d{3})(\d{3})(\d{4})/g, "$1-$2-$3" );
运行结果: "123-456-7890"
注: 大多时候是利用regexp和$的结合来实现需求,所以知道一些基本的正则表达式规则是有必要的。