var textTitle = "this is a test"
var result = textTitle.replace(' ', '%20');
しかし、置換関数は「」の最初のインスタンスで停止し、
結果:"this%20is a test"
私がどこで間違っているかについてのアイデアは、その簡単な修正方法です。
次のような/g
が必要です。
var textTitle = "this is a test";
var result = textTitle.replace(/ /g, '%20');
console.log(result);
ここで遊ぶことができます 、デフォルトの.replace()
動作は最初のマッチのみを置き換えることです、 /g
修飾子 (グローバル)はすべての出現を置き換えます。
textTitle.replace(/ /g, '%20');
最初の引数に文字列の代わりに正規表現を使用してみてください。
"this is a test".replace(/ /g,'%20')
//#=> "this%20is%20a%20test"
Replace()メソッドは、部分文字列(または正規表現)と文字列の間のmatchを検索し、一致した部分文字列を新しい部分文字列で置き換えます
ここで正規表現を使用する方が良いでしょう:
textTitle.replace(/ /g, '%20');
そのためには、正規表現のgフラグを使用する必要があります。
var new_string=old_string.replace( / (regex) /g, replacement_text);
あれ
同じ、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