replace()
的语法为:
str.replace(pattern, replacement)
在这里, str是一个字符串。
replace()参数
replace()
方法采用:
-
pattern
-要替换的字符串或正则表达式 -
replacement
-的pattern
被替换为这个replacement
(可以是一个字符串或一函数)
从replace()返回值
-
replace()
方法返回一个替换了指定模式的新字符串 。
示例1:替换第一次出现
const text = "Java is awesome. Java is fun."
// passing a string as the first parameter
let pattern = "Java";
let new_text = text.replace(pattern, "JavaScript");
console.log(new_text);
// passing a regex as the first parameter
pattern = /Java/;
new_text = text.replace(pattern, "JavaScript");
console.log(new_text);
输出
JavaScript is awesome. Java is fun.
JavaScript is awesome. Java is fun.
在这两个replace()
方法中,第一次出现的Java都用JavaScript替换。
示例2:替换所有出现
要替换所有出现的pattern
,您需要使用带有g
开关的正则表达式(全局搜索)。例如, /Java/g
代替/Java/
。
const text = "Java is awesome. Java is fun."
// notice the g switch in the regex pattern
const pattern = /Java/g;
const new_text = text.replace(pattern, "JavaScript");
console.log(new_text);
输出
JavaScript is awesome. JavaScript is fun.
在这里, replace()
方法用JavaScript
替换了Java
两次出现。
不考虑大写/小写替换
replace()
方法区分大小写。要执行不区分大小写的替换,您需要使用带i
开关的正则表达式(不区分大小写的搜索)。
示例3:不区分大小写的替换
const text = "javaSCRIPT JavaScript"
// the first occurrence of javascript is replaced
let pattern = /javascript/i; // case-insensitive search
let new_text = text.replace(pattern, "JS");
console.log(new_text) // JS JavaScript
// all occurrences of javascript is replaced
pattern = /javascript/gi; // case-insensitive and global search
new_text = text.replace(pattern, "JS");
console.log(new_text) // JS JS
输出
JS JavaScript
JS JS
示例4:传递函数作为替换
您还可以将函数 (而不是字符串)作为第二个参数传递给replace()
方法。
const text = "Random digit: 3"
// generate a random digit between 0 and 9
function generateRandomDigit() {
return Math.floor(Math.random() * 10)
}
// regex to match a digit
const pattern = /\d/;
const new_text = text.replace(pattern, generateRandomDigit);
console.log(new_text)
输出
Random digit: 8
运行此程序时,您可能会得到不同的输出。这是因为文本中的第一位数字被替换为0到9之间的随机数字。
推荐阅读: JavaScript字符串replaceAll()