Ich habe mir selbst eine Funktion geschrieben, um eine Zeichenkette in eine Abkürzung umzuwandeln, und sie ist momentan ziemlich lang und es wird zwischen Groß- und Kleinschreibung unterschieden.JavaScript-Funktion verkürzen
Ich brauche eine Möglichkeit, es zu verkürzen, damit es 100% der Zeit funktioniert. Momentan verschraubt es sich, wenn eines der aufspaltenden Wörter ein Großbuchstabe hat, wenn ein Wort in einem aufspaltenden Wort endet.
Meine spaltenden Wörter sind im Grunde die Wörter, die ich entferne (wie die meisten Unternehmen und solche enthalten sie nicht). Dazu gehören:
- und
- von
- die
- für
- zu
Auch die Art, wie ich sie habe Entfernen Split mit und verbinden (str.split('and ').join('')
), die für mich scheint nicht der einfachste Weg.
Abgesehen von diesen Problemen funktioniert es gut. Könnte mir jemand helfen, die Funktion zu verkleinern und die Probleme zu beheben? Vielen Dank.
Funktion:
String.prototype.toAbbrev = function() {
var s = [];
var a = this.split('and ').join('').split('of ').join('').split('the').join('').split('for ').join('').split('to ').join('').split(' ');
for (var i = 1; i < a.length + 1; i++) {
s.push(a[i - 1].charAt(0).toUpperCase());
}
return s.join('.');
}
Ausgänge auf Getestet Firmen
The National Aeronautics and Space Administration -> N.A.S.A The National Roads and Motorists' Association -> N.R.M.A Royal Society for the Prevention of Cruelty to Animals -> R.S.P.C.A
Wie wäre es stattdessen mit einem Ersatz für reguläre Ausdrücke? Sie können den Modifizierer "i" verwenden, um die Groß- und Kleinschreibung zu ignorieren. – Barmar
Können Sie mir ein Beispiel zeigen? Ich habe noch nie zuvor Regex benutzt. @thefourtheye Danke für die Bearbeitung, habe vergessen, das zu tun, bevor ich gepostet habe. – Spedwards
Erweitern Sie den String-Prototyp dafür nicht. Das Erweitern von nativen Prototypen ist in JavaScript generell sehr verpönt. Habe einfach eine normale Funktion - nichts falsch daran. –