JavaScript String replaceAll() 方法



JavaScript String replaceAll() 方法将值或正则表达式作为模式搜索,并返回一个新字符串,其中该模式的所有匹配项都由指定的替换替换替换。

模式可以是字符串或正则表达式,替换可以是字符串或函数。该方法不会更改原始字符串,但会返回一个新字符串。

以下是 replace() 和 replaceAll() 方法之间的区别 -

replace() 方法仅将搜索值或正则表达式的第一个匹配项替换为指定的替换项,例如:“,qikepu,com,”.replace(“,”, “”) 返回 “qikepu,com,”,而 replaceAll() 方法将搜索值或正则表达式的所有匹配项替换为指定的替换项。

语法

以下是 JavaScript String replaceAll() 方法的语法 -


 replaceAll(pattern, replacement)

参数

此方法接受两个参数,例如:'pattern' 和 'replacement',如下所述 -

  • pattern − 替换为 replament 的字符串或正则表达式。
  • replacement − 字符串或函数替换了模式。

返回值

此方法 String.replaceAll(pattern, replacement) 返回一个新字符串,其中 pattern 的所有匹配项都替换为 replacement。

示例 1

在这个程序中,我们使用 JavaScript String replaceAll() 方法将字符串 “Com” 替换为字符串 “Qikepu Com” 中的 “Com”。


<html>
<head>
<title>JavaScript String replaceAll() Method</title>
</head>
<body>
<script>
	 	const str = "Qikepu Com";
	 	document.write("原始字符串: ", str);
	 	document.write("<br>替换后的新字符串: ", str.replaceAll("Point", "point"));
</script>
</body>
</html>

输出

上述程序在替换后返回 “Qikepu Com” -

原始字符串: Qikepu Com
替换后的新字符串: Qikepu Com

示例 2

这是 JavaScript String replaceAll() 方法的另一个示例。在此示例中,我们使用此方法将字符串 “Hello World” 中的所有空格 (“ ”) 替换为空字符串 (“”)。


<html>
<head>
<title>JavaScript String replaceAll() Method</title>
</head>
<body>
<script>
	 	const str = " Hello World ";
	 	document.write("原始字符串: ", str);
	 	document.write("<br>替换后的新字符串: ", str.replaceAll(" ", ""));
</script>
</body>
</html>

输出

执行上述程序后,替换后返回新字符串 “HelloWorld”。

原始字符串: Hello World
替换后的新字符串: HelloWorld

示例 3

如果模式是一个空字符串,则替换将插入到每个 UTF-16 代码之间(或单词的每个字符之间)单元之间。例如,字符串 “Hello” 有 5 个 UTF-16 代码单元:H、e、l、l 和 o。如果在此字符串上使用 replaceAll(“”, “_”) ,则得到 “_H_e_l_l_o_”。


<html>
<head>
<title>JavaScript String replaceAll() Method</title>
</head>
<body>
<script>
	 	const str = "QikepuCom";
	 	document.write("原始字符串: ", str);
	 	document.write("<br>更换后的字符串: ", str.replaceAll("", "_"));
</script>
</body>
</html>

输出

执行上述程序后,它将返回 “_Q_i_k_e_p_u_C_o_m_”。

原始字符串: QikepuCom
更换后的字符串: _Q_i_k_e_p_u_C_o_m_

示例 4

当正则表达式对象没有设置全局标志时,它会引发 “TypeError” 异常。


<html>
<head>
<title>JavaScript String replaceAll() Method</title>
</head>
<body>
<script>
	 	const str = "abbabba"
	 	document.write("原始字符串: ", str);
	 	try {
	 	 	 document.write("<br>替换后的字符串: ", str.replaceAll(/b/, "-"));
	 	} catch (error) {
	 	 	 document.write("<br>", error);
	 	}
</script>
</body>
</html>

输出

上面的程序引发了 “TypeError” 异常。

原始字符串: abbabba
TypeError: String.prototype.replaceAll called with a non-global RegExp argument