JavaScript .replace只替换第一个匹配项[duplicate]

plupiseo  于 2023-01-29  发布在  Java
关注(0)|答案(7)|浏览(180)
    • 此问题在此处已有答案**:

How do I replace all occurrences of a string in JavaScript?(78个答案)
三年前关闭了。
这篇文章是编辑和提交审查昨天.

var textTitle = "this is a test"
var result = textTitle.replace(' ', '%20');

但是replace函数在""的第一个示例处停止,我得到
结果:"this%20is a test"
你知道我哪里出错了吗?我相信这是一个简单的解决办法。

gz5pxeao

gz5pxeao1#

你需要一个/g,就像这样:

var textTitle = "this is a test";
var result = textTitle.replace(/ /g, '%20');

console.log(result);

You can play with it here时,默认的.replace()行为是只替换第一个匹配项,the /g modifier(全局)告诉它替换所有匹配项。

dm7nw8vv

dm7nw8vv2#

textTitle.replace(/ /g, '%20');
knpiaxh1

knpiaxh13#

同样,如果你需要“generic”正则表达式从字符串:

const textTitle = "this is a test";
const regEx = new RegExp(' ', "g");
const result = textTitle.replace(regEx , '%20');
console.log(result); // "this%20is%20a%20test" will be a result
0pizxfdo

0pizxfdo4#

From w3schools
replace()方法搜索子字符串(或正则表达式)与字符串之间的 * 匹配 *,并将匹配的子字符串替换为新的子字符串
在这里使用正则表达式会更好:

textTitle.replace(/ /g, '%20');
xurqigkl

xurqigkl5#

尝试使用正则表达式代替字符串作为第一个参数。
"this is a test".replace(/ /g,'%20')// #=〉“这是一个测试”

xeufq47z

xeufq47z6#

为此,您需要使用regex的g标志,如下所示:

var new_string=old_string.replace( / (regex) /g,  replacement_text);

那个...

相关问题