2009-10-20 5 views
9

Il y a beaucoup de scripts là pour couper une chaîne en javascript, mais aucun pour Left Trim String.Garniture gauche en Javascript

C'est ce que j'utilise pour couper:

String.prototype.trim = function() { 
    return this.replace(/^\s+|\s+$/g,""); 
} 

Mais je voudrais changer cela un peu et de créer une nouvelle fonction appelée leftTrim qui ne supprime que l'espace principal. Mon regex est assez limité, donc toute aide est très appréciée.

Vive

Répondre

19

Utilisation:

String.prototype.leftTrim = function() { 
    return this.replace(/^\s+/,""); 
} 

Dans le regex les:

  • ^signifie "depuis le début de la chaîne"
  • \ s signifie caractère espace classe
  • + signifie un ou plusieurs (gourmands)

so ....

  • ^\ s + signifie "un ou plusieurs espaces consécutifs depuis le début de la classe"

Note: Le drapeau g à la fin de votre regex est inutile car les ancres (^ et $) définissent explicitement ce qui va correspondre. Il ne peut pas y avoir plusieurs correspondances.

Voir https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp pour plus de détails sur la syntaxe regex javascript

+1

Remarque: Le modificateur/g (global) n'est pas nécessaire et peut le rendre un peu moins efficace. – Jesper

+0

Qu'est-ce que 'g' BTW? Vous avez manqué ça. –

+0

merci Jesper, j'étais en train de l'éditer déjà quand vous avez écrit cela. @Vinegar, 'g' signifie' global match' et est utilisé pour trouver plusieurs correspondances –

1
String.prototype.leftTrim = function() { 
     return this.replace(/^\s+/,""); 
} 
3

J'ai déjà répondu il y a a similar question quelques instants, mais voici ma solution à votre question.

String.prototype.trimLeft = String.prototype.trimLeft || function() { 
    var start = -1; 

    while(this.charCodeAt(++start) < 33); 

    return this.slice(start, this.length); 
}; 

La solution ci-dessus est basé sur Ariel Flesler fast trim function et le fait que Firefox 3.5 et présente au-dessus d'une méthode intégrée trimLeft sur l'objet String.

Questions connexes