Mine verwendet einen einzigen Regex, um nach Fällen zu suchen, in denen das Trimmen erforderlich ist, und verwendet die Ergebnisse dieses Regex, um die gewünschten Teilstring-Grenzen zu bestimmen:
var illmatch= /^(\s*)(?:.*?)(\s*)$/
function strip(me){
var match= illmatch.exec(me)
if(match && (match[1].length || match[2].length)){
me= me.substring(match[1].length, p.length-match[2].length)
}
return me
}
Die einzige Design-Entscheidung, die hier getroffen wurde, war die Verwendung einer Teilzeichenkette, um die endgültige Erfassung durchzuführen. s/\?:// (der mittlere Begriff wird erfasst) und das Ersatzfragment wird:
if(match && (match[1].length || match[3].length)){
me= match[2]
}
Ich habe bei diesen Feebolden zwei Leistungswetten abgeschlossen:
-
Kopiert die Substring-Implementierung die Daten der ursprünglichen Zeichenfolge? Wenn ja, in der ersten, wenn eine Zeichenfolge getrimmt werden muss, gibt es eine doppelte Traversal, zuerst in der Regex (die hoffentlich teilweise sein kann), und zweitens in der Substring-Extraktion. hoffentlich eine Substring-Implementierung verweist nur auf die ursprüngliche Zeichenfolge, so dass Operationen wie Substring fast frei sein kann. Daumen drücken
-
Wie gut ist die Erfassung in der Regex-Implikation? der mittlere Term, der Ausgabewert, könnte potenziell sehr lang sein. ich war nicht bereit, darauf zu vertrauen, dass die Erfassung aller Regex-Implikatoren bei einer Eingabeerfassung von mehreren hundert KB nicht ins Stocken gerät, aber ich habe es auch nicht getestet (zu viele Laufzeiten, tut mir leid!). die zweite führt IMMER eine Erfassung durch; wenn Ihr Motor dies tun kann, ohne einen Treffer zu erleiden, vielleicht unter Verwendung einiger der oben genannten String-Seilzug-Techniken, dann verwenden Sie es auf jeden Fall!
296 Stimmen
Es ist erwähnenswert, dass zwei Jahre nachdem diese Frage gestellt wurde, String.trim() nativ in JavaScript 1.8.1 / ECMAScript 5 hinzugefügt wurde, unterstützt in: Firefox 3.5+, Chrome/Safari 5+, IE9+ (nur im Standardmodus!) siehe die Antwort von scunliffe: stackoverflow.com/a/8522376/8432
47 Stimmen
String.trim()
funktioniert auch in Node.js ohne Probleme.47 Stimmen
Um pingelig zu sein:
String.trim()
, die Klassenmethode, gibt es in ES5/Node.js nicht; stattdessen,String.prototype.trim()
, die Instanzmethode, existiert. Verwendung:' foo '.trim()
pasString.trim(' foo ')
.3 Stimmen
String.trim() funktioniert auch in Google Apps Script!
40 Stimmen
OMG, es ist 2013 und IE9 im Kompatibilitätsmodus hat keine trim() Methode auf String!
80 Stimmen
Es ist erwähnenswert, dass in jQuery,
$.trim(str)
ist immer verfügbar.1 Stimmen
Das Traurige daran ist, dass es kein ltrim und rtrim gibt.
0 Stimmen
String.trim()
gilt nur für Leerzeichen. Trimmen sollte 2016 mehr sein als das...1 Stimmen
Dieses Beispiel zeigt, wie man eine Zeichenkette mit JavaScript trimmt: javascriptstutorial.com/blog/trim-string
0 Stimmen
developer.mozilla.org/de-US/docs/Web/JavaScript/Reference/