1

Javascriptを使って、テキストを変換したい

"  [a] b    [c]" 

"[a] b [c]"

以下のように私のコード:

var test = "  [a] b    [c]";
test.replace(/\s+\[/g, "[");
alert(test);

ただし、結果は

"[a] b    [c]"

なぜだろう?何か案が?

ありがとう!

4

2 に答える 2

3

文字列は不変です。Soは変更されreplaceませんtestが、変更された文字列が返されます。したがって、結果を割り当てる必要があります。

test = test.replace(/\s+\[/g, "[");

となりますのでご注意ください[a] b[c]。実際の結果を得るには、次を使用することをお勧めします。

test = test.replace(/(^|\s)\s*\[/g, "$1[");

これにより、最初の空白文字が文字列の先頭にない場合、必ず書き戻されます。

または、first を使用して、 trim1 つのスペースを手動で書き戻します。

test = test.trim().replace(/\s+\[/g, " [");
于 2013-08-18T16:32:03.150 に答える