JavaScript .replace 只替换第一个匹配

IT技术 javascript regex replace
2021-01-15 07:36:38
var textTitle = "this is a test"
var result = textTitle.replace(' ', '%20');

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

结果 : "this%20is a test"

关于我哪里出错的任何想法,我确信这是一个简单的修复。

6个回答

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

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

console.log(result);

你可以用它在这里玩,默认.replace()行为是仅更换第一场比赛,/g改性剂(全球)告诉它全部替换。

做的正是需要的。谢谢你。
2021-04-03 07:36:38
有关更换管道,请参阅
2021-04-07 07:36:38
textTitle.replace(/ /g, '%20');

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

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

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

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

那个sh

同样,如果您需要来自 string 的“通用”正则表达式:

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