JavaScript .replace只替换第一个匹配

时间:2010-07-09 17:01:28

标签: javascript regex replace

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

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

结果:"this%20is a test"

关于我出错的地方的任何想法我确定它是一个简单的修复。

7 个答案:

答案 0 :(得分:181)

你需要/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(全局)告诉它替换所有匹配项。

答案 1 :(得分:7)

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

答案 2 :(得分:4)

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

"this is a test".replace(/ /g,'%20') //#=> “此%图20是%20A%20test”

答案 3 :(得分:2)

From w3schools

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

最好在这里使用正则表达式:

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

答案 4 :(得分:1)

为此你需要使用正则表达式的g标志.... 像这样:

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

那个sh

答案 5 :(得分:0)

如果需要从字符串“泛型”正则表达式:

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
    

答案 6 :(得分:-5)

尝试使用replaceWith()replaceAll()

http://api.jquery.com/replaceAll/