只替换第一个匹配

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

但是,替换函数在“”的第一个实例处停止,并且我得到

结果: "this%20is a test"

任何关于我在哪里出错的想法肯定是一个简单的解决办法。

154370 次浏览

你需要一个 /g在那里,像这样:

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


console.log(result);

您可以在这里使用它 ,默认的 .replace()行为是只替换第一个匹配项,/g修饰语(global)告诉它替换所有匹配项。

尝试使用 replaceWith()replaceAll()

Http://api.jquery.com/replaceall/

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

W3学校的

方法在子字符串(或正则表达式)和字符串之间搜索 火柴,并用新的子字符串替换匹配的子字符串

那么在这里使用正则表达式会更好:

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

尝试在第一个参数中使用正则表达式而不是字符串。

"this is a test".replace(/ /g,'%20')//# = > 「此20is% 20a% 20test 」

为此,您需要使用 regex 的 g 标志... 。 像这样:

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

该死

同样,如果需要字符串中的“泛型”正则表达式:

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