Ich muss eine Reihe von Ziffern in Stücke von drei brechen, aber ich kann nicht zulassen, dass ein Stück nur eine Ziffer enthält, muss es mindestens zwei enthalten .Break String in Stücke von drei, aber mit einer Mindestanzahl von zwei
Zum Beispiel
[123],[456],[7]
- ist dies nicht akzeptabel, weil 7
allein gelassen wird, auf seine
[123],[45],[67]
- das ist die akzeptable Lösung
Ich habe es fast geschafft habe, aber ich bin nicht sicher, wie man damit umgeht, dass es mindestens zwei Ziffern gibt.
Hier ist meine Lösung, die die Zeichenfolge in drei Teile bricht aber für mindestens einstellige Zählung nicht berücksichtigt:
function solution(s) {
var number = s.replace(/\D/g, '');
number = number.match(/.{1,3}/g); // breaks down into threes
number = number.join('-');
return number;
}
hier ein, ihn in Aktion zu sehen ist codepen: http://codepen.io/franhaselden/pen/mPobNb
Dank, können Sie diese brechen, um nur den Teil nach unten, die dem Look-Ahead-Griffen? Ähnlich wie ich es in drei verschiedene Linien unterteilt habe. Es macht es einfach für mich zu lernen, als alles zusammen zu sehen. – user1486133
Auch ich habe Ihre Lösung versucht, und es entfernt die letzten zwei Zahlen der Zeichenfolge, die nicht richtig ist. Alle Zahlen müssen enthalten sein: http://codepen.io/franhaselden/pen/mPobNb – user1486133
Sie verwenden 'match' anstelle von' replace', wie mein Vorschlag oben. 'match' gibt nur den übereinstimmenden Teil zurück, ohne den Rest. in Ihrem Fall würde ich es in einem Schritt mit 'ersetzen 'tun. –