replace() 方法用于在字符串中用一些字符替换另一些字符, 或替换一个与正则表达式匹配的子串。
语法:
stringObject.replace(regexp / substr, replacement);
参数: regexp / substr, 可以是RegExp对象, 也可以是一个字符串;
replacement, 要替换的字符串;
这两个参数都是必填的;
说明: 符串 stringObject 的 replace() 方法执行的是查找并替换的操作。 它将在 stringObject 中查找与 regexp 相匹配的子字符串, 然后用 replacement 来替换这些子串。 如果 regexp 具有全局标志 g, 那么 replace() 方法将替换所有匹配的子串。 否则, 它只替换第一个匹配子串;
replacement 可以是字符串, 也可以是函数。 如果它是字符串, 那么每个匹配都将由字符串替换。 但是 replacement 中的 $ 字符具有特定的含义。 如下表所示, 它说明从模式匹配得到的字符串将用于替换
例1:var str = "hello Jhon!"
console.log(str.replace(/Jhon/, "LiLei"))
//hello LiLei!
例2: var str = "Excuse me!May I ask some questions!"
console.log(str.replace(/s/g, "x"))
//Excuxe me!May I axk xome quextionx! g是全局匹配符号,如果没有g,那么只会匹配第一个符合条件的字符串,Excuxe me!May I ask some questions!
例3: var str = ‘"a", "b"
str.replace(/"([^"]*)"/g, "‘$1‘");
// "‘a‘, ‘b‘"
例4: var str = ‘aaa bbb ccc‘;
strs = str.replace(/\b\w+\b/g, function(word) {
return word.substring(0, 1).toUpperCase() + word.substring(1)
});
(说明:\ b 匹配一个单词边界, 也就是指单词和空格间的位置( 即正则表达式的“ 匹配” 有两种概念, 一种是匹配字符, 一种是匹配位置, 这里的\ b就是匹配位置的)。 例如,“ er\ b” 可以匹配“ never” 中的“ er”, 但不能匹配“ verb” 中的“ er”。 \ B 匹配非单词边界。“ er\ B” 能匹配“ verb” 中的“ er”, 但不能匹配“ never” 中的“ er”。 \ w 匹配包括下划线的任何单词字符。 类似但不等价于“[A - Za - z0 - 9 _]”, 这里的 "单词"。
字符使用Unicode字符集。+ 匹配1或多个正好在它之前的那个字符。
)
// "Aaa Bbb Ccc"