数字の文字列を3つのチャンクに分割する必要がありますが、チャンクに1つの数字だけを含めることはできません。 。ストリングを3つのチャンクに分割しますが、最小のカウントは2つです
[123],[456],[7]
例えば
- これが受け入れ可能な解決
である私はほとんどそこに持っているが、私はないよ - 7
はそれ自身の
[123],[45],[67]
に残されているので、これは受け入れられません少なくとも2桁の数字があることを確認してください。ここで
はダウン三つの部分に文字列を破るが、最小桁数を考慮していない私のソリューションです:
function solution(s) {
var number = s.replace(/\D/g, '');
number = number.match(/.{1,3}/g); // breaks down into threes
number = number.join('-');
return number;
}
ここでのアクションでそれを見るためにcodepenます:http://codepen.io/franhaselden/pen/mPobNb
おかげで、あなたは先読みを処理する部分だけにこれを打破することができますか?私はそれをどのように3つの異なる行に分解したのと同様です。それは、すべてを組み合わせて見るよりも、私が学ぶ方が簡単です。 – user1486133
また、私はあなたのソリューションを試して、それは右ではない文字列の最後の2つの数字を削除します。すべての番号を含める必要があります:http://codepen.io/franhaselden/pen/mPobNb – user1486133
上記の私の提案のように、あなたは 'replace'の代わりに' match'を使用しています。 'match'は、マッチした部分だけを返します。あなたのケースでは、私は 'replace'を使って1ステップでそれをやります。 –