1

次の例のいずれかを使用した場合に、文字列から末尾の空白とピリオドをすべて削除しようとしています。

var string = "  ..  bob is a string .";

また

var string = " .  bob is a string . ..";

それらは次のようになります:

"bob is a string"

私はうんざりしてしゃがむことを知っていますが、ここでregex末尾の空白を削除する関数を見つけました:

str.replace(/^\s+|\s+$/g, "");

ピリオドを含めるように変更しようとしましたが、それでも末尾の空白文字のみが削除されます。

str.replace(/^[\s+\.]|[\s+\.]$/g, "");

誰かがこれがどのように行われるかを教えてくれ、おそらく私に使用されている正規表現を説明できますか?

4

2 に答える 2

4

正規表現はほぼ正しいです。数量詞(+)を文字クラス()の外[]に置く必要があります。

var str = " .  bob is a string . ..";
str.replace(/^[.\s]+|[.\s]+$/g, "");
//"bob is a string"
于 2012-09-07T11:35:02.007 に答える
0

これを試して:

var str = " .  bob is a string . ..";
var stripped = str.replace(/^[\s.]+|[\s.]+$/g,"");

文字クラス([])内で.は、エスケープする必要はありません。これにより、先頭または末尾の空白とピリオドが削除されます。

于 2012-09-07T11:37:50.600 に答える