开发者

JavaScript .replace only replaces first Match [duplicate]

开发者 https://www.devze.com 2023-01-06 03:33 出处:网络
This question already has answers here: 开发者_StackOverflow社区 How do I replace all occurrences of a string in JavaScript?
This question already has answers here: 开发者_StackOverflow社区 How do I replace all occurrences of a string in JavaScript? (78 answers) Closed 3 years ago.
var textTitle = "this is a test"
var result = textTitle.replace(' ', '%20');

But the replace functions stops at the first instance of the " " and I get the

Result : "this%20is a test"

Any ideas on where Im going wrong im sure its a simple fix.


You need a /g on there, like this:

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

console.log(result);

You can play with it here, the default .replace() behavior is to replace only the first match, the /g modifier (global) tells it to replace all occurrences.


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


From w3schools

The replace() method searches for a match between a substring (or regular expression) and a string, and replaces the matched substring with a new substring

Would be better to use a regex here then:

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


The same, if you need "generic" regex from 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
    


Try using a regex instead of a string for the first argument.

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


For that you neet to use the g flag of regex.... Like this :

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

That sh


Try using replaceWith() or replaceAll()

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

0

精彩评论

暂无评论...
验证码 换一张
取 消