str.replace(/ +/g, function(match) {
return " " + Array(match.length).join(' ');
});
これにより、第2のパラメータとしての置換を生成する機能を取り、
の適切な数続く単一スペースで2つの以上のスペースのすべての発生を置き換えreplace
のバージョンを使用します。
String.prototype.repeat
機能がありますが、これはIEではサポートされていませんので、今のところ
のシーケンスを生成する別の方法を使用することをお勧めします。 Array(match.length).join(' ')
は、別の質問にthis answerから取った文字列を繰り返すための短い方法です。あなたがの長さから1を減算する必要はありませんArray(n).join
で
function repeat(pattern, count) {
if (count < 1) return '';
var result = '';
while (count > 1) {
if (count & 1) result += pattern;
count >>= 1, pattern += pattern;
}
return result + pattern;
}
お知らせ:再びRepeat String質問から取られますが、繰り返しを実行するには、この機能を使用することができます別の方法として
、一致して、壊れていないスペースを適切に取得します。例えばArray(3).join(' ')
は" "
ですが、繰り返しストリングを生成する他の方法では、マッチの長さよりも1分短くする必要があります。
2つ以上のスペースを空白で置き換え、それに続く「 」と置き換えるのではなく、最初のスペース*をすべて置き換えるのではなく、「 」としますか? – mikej
はい、それは気づかなかった:(その場合私はそれを編集する必要があります。) –
の場合は、頭のおかげであなたのクレジットをあなたと少し同じコードで行くよ、私は希望あなたは気にしない –