Javascriptを使って、テキストを変換したい
" [a] b [c]"
に
"[a] b [c]"
以下のように私のコード:
var test = " [a] b [c]";
test.replace(/\s+\[/g, "[");
alert(test);
ただし、結果は
"[a] b [c]"
なぜだろう?何か案が?
ありがとう!
Javascriptを使って、テキストを変換したい
" [a] b [c]"
に
"[a] b [c]"
以下のように私のコード:
var test = " [a] b [c]";
test.replace(/\s+\[/g, "[");
alert(test);
ただし、結果は
"[a] b [c]"
なぜだろう?何か案が?
ありがとう!
文字列は不変です。Soは変更されreplace
ませんtest
が、変更された文字列が返されます。したがって、結果を割り当てる必要があります。
test = test.replace(/\s+\[/g, "[");
となりますのでご注意ください[a] b[c]
。実際の結果を得るには、次を使用することをお勧めします。
test = test.replace(/(^|\s)\s*\[/g, "$1[");
これにより、最初の空白文字が文字列の先頭にない場合、必ず書き戻されます。
または、first を使用して、 trim
1 つのスペースを手動で書き戻します。
test = test.trim().replace(/\s+\[/g, " [");