2016-05-11 15 views
2

テキストから複数のスペースを削除します。私はカンマが "2"の後に何をするのか理解できません。 https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressionsには、「{2}」だけがすべてのダブルスを配置する必要があることが示されています。非常に混乱Javascriptでマルチスペースを削除するための特殊文字

return newsong.replace(/\s{2}/g, ' ') 

return newsong.replace(/\s{2,}/g, ' ') 

....

+0

http://www.regular-expressions.info/repeatと一致します。 html – Bergi

答えて

2

コンマはあなたのような文字列からスペースを削除することができ、2つの以上スペースに一致します。同様

part1  part2 

。あなたはこの1つ(無コンマ)の最初の正規表現を使用する場合は、この表示されます:最初の二つのスペースが削除され

part1<SPACE><SPACE><SPACE><SPACE><SPACE>part2 

を、次の2は、

part1<SPACE>part2 

これであなたを残して最後のスペースは\s{2}と一致せず、そのまま残ります。カンマを使用すると、2つ以上のスペースに一致するため、カンマを一度にすべて削除します。

また、コンマの後に別の数字を入力すると、一致するスペースの最大数を設定できます。

+0

ありがとうございました!非常に明確な。私が理解していることを理解してください –

+0

*はスペースを削除しないことに注意してください。あなたの例は1の代わりに3つのスペースで終わり、0ではなく1ではなくなります。 – Bergi

+0

単語も削除したいです。なぜこれは機能しませんか? songText.replace(/ WUB {1、}/g、 ""); –

2

範囲メタシーケンスは、最小一致と最大一致の2つの部分で構成されます。

{n, m} 
nが最小

mが最大となります。

一つだけが、それは、例えば、最小値と最大値の両方として考えられています指定されている:x{2}はmanimumが省略された場合、それは0にマッチします2 x'es

と一致します。..最大回、例えば:x{,2}はゼロに一致します、 1または2 x'es

最大を省略した場合、それは例えば、最小回以上にマッチします:x{2,}が二つ以上のx'es

+0

偉大な答えをありがとう! –

+0

私も単語を削除したい。なぜこれは機能しませんか? songText.replace(/ WUB {1、}/g、 ""); –

+0

@AlexeyTseitlin範囲セレクタは、その前の文字またはグループのみを処理します。 '/(?: WUB){1、}/g'を使うか、1つ以上の場合はあなたの場合は' /(?:WUB)+/g' – andlrc

関連する問題