Comment découper une chaîne en JavaScript?
javascript
string
trim
Vinod
la source
la source
String.trim()
fonctionne également bien hors de la boîte dans Node.js.String.trim()
la méthode de classe, n'existe pas dans ES5 / Node.js; à la place,String.prototype.trim()
la méthode d'instance existe. Utilisation:' foo '.trim()
nonString.trim(' foo ')
.$.trim(str)
est toujours disponible.Réponses:
Tous les navigateurs depuis IE9 + ont une
trim()
méthode pour les chaînes.Pour les navigateurs qui ne prennent pas en charge
trim()
, vous pouvez utiliser ce polyfill de MDN :Cela dit, si vous utilisez
jQuery
,$.trim(str)
est également disponible et gère undefined / null.Regarde ça:
la source
$.trim(str)
est toujours disponible.Le trim de jQuery est pratique si vous utilisez déjà ce framework.
J'ai tendance à utiliser jQuery souvent, donc couper les chaînes avec lui est naturel pour moi. Mais il est possible qu'il y ait un contrecoup contre jQuery là-bas? :)
la source
Bien qu'il y ait un tas de réponses correctes ci-dessus, il convient de noter que l'
String
objet en JavaScript a une.trim()
méthode native à partir d' ECMAScript 5 . Ainsi, idéalement, toute tentative de prototype de la méthode de découpage devrait vraiment vérifier si elle existe déjà en premier.Ajouté nativement dans: JavaScript 1.8.1 / ECMAScript 5
Ainsi soutenu dans:
Firefox: 3.5+
Safari: 5+
Internet Explorer: IE9 + (en mode Standards uniquement!) Http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more .aspx
Chrome: 5+
Opera: 10,5+
Tableau de support ECMAScript 5: http://kangax.github.com/es5-compat-table/
la source
Il existe de nombreuses implémentations qui peuvent être utilisées. Le plus évident semble être quelque chose comme ça:
la source
Version simple ici Qu'est-ce qu'une fonction générale pour le découpage JavaScript?
la source
Je sais que cette question a été posée il y a trois ans.Maintenant, a
String.trim()
été ajoutée en natif dans JavaScript.Par exemple, vous pouvez couper directement comme suit,la source
Si vous utilisez jQuery, utilisez la
jQuery.trim()
fonction. Par exemple:la source
Flagrant Badassery a 11 versions différentes avec des informations de référence:
http://blog.stevenlevithan.com/archives/faster-trim-javascript
Sans surprise, les expressions rationnelles sont plus lentes que les boucles traditionnelles.
Voici mon personnel. Ce code est vieux! Je l'ai écrit pour JavaScript1.1 et Netscape 3 et il n'a été que légèrement mis à jour depuis. (String.charAt d'origine utilisé)
la source
Utilisez le code JavaScript natif Méthodes:
String.trimLeft()
,String.trimRight()
etString.trim()
.String.trim()
est pris en charge dans IE9 + et tous les autres principaux navigateurs :String.trimLeft()
et neString.trimRight()
sont pas standard, mais sont pris en charge dans tous les principaux navigateurs sauf IELe support d'IE est facile avec un polyfill cependant:
la source
trimLeft
outrimRight
.lTrim()
et lesrTrim()
méthodes.Sans vergogne volé à Matt Duereg .
la source
De nos jours, vous pouvez utiliser string.trim () qui est une implémentation Javascript native
Voir également
la source
Couper le code du projet angulaire js
et l'appelle comme
trim(" hello ")
la source
utiliser simplement du code
Prise en charge du navigateur
Pour l'ancien navigateur, ajoutez un prototype
la source
replace
regexp de fonction. je ne l'ai pas complètement compris. Voudriez-vous l'expliquer un peu plus la partie regexp?Voici un moyen très simple:
la source
trim
ne doit supprimer que les espaces de début et de fin (qui incluent les tabulations et autres caractères). Cela supprime à la place tous les espaces, y compris ceux du milieu.Utiliser
trim()
sur String qui est natif pourrait être le moyen le plus simple:la source
Vous pouvez simplement déclarer votre variable sous forme de chaîne et utiliser sa fonction de découpage:
la source
Aujourd'hui, presque tous les navigateurs sont compatibles
String.prototype.trim()
.Vous l'utilisez comme ceci:
Dans le cas où vous pourriez encore avoir besoin de prendre en charge un ancien navigateur qui ne prend pas en charge cette fonctionnalité, il s'agit d' un polyfill suggéré par le MDN:
la source
J'ai une bibliothèque qui utilise le trim. donc résolu en utilisant le code suivant.
la source
.trim()
méthode égale à la nativeString.prototype.trim
qui a déjà été définiereturn jQuery.trim(this)
, créant ainsi un débordement de pile.Des réponses précédentes, il diffère en ajoutant un indicateur
m
.Flag
m
recherchera le texte de plusieurs linéaires. Dans ce mode, la marque de début et de fin du motif (^
$
) est insérée avant et après le caractère de nouvelle ligne (\n
).la source
Vous pouvez le faire en utilisant le JavaScript simple:
la source
Maintenant, trim () construit en javascript.
il suffit de console ou d'imprimer le code, votre nom sera également coupé.
la source
Je ne sais pas quels bugs peuvent se cacher ici, mais j'utilise ceci:
Ou ceci, si le texte contient entre:
Un autre essai:
la source
Le voici en TypeScript:
Il retombera sur l'expression régulière si le prototype natif n'est pas disponible.
la source
J'avais écrit cette fonction pour le trim, lorsque la fonction .trim () n'était pas disponible en JS en 2008. Certains des anciens navigateurs ne prennent toujours pas en charge la fonction .trim () et j'espère que cette fonction peut aider quelqu'un.
FONCTION TRIM
Explication : La fonction trim () accepte un objet chaîne et supprime tous les espaces de début et de fin (espaces, tabulations et sauts de ligne) et renvoie la chaîne tronquée. Vous pouvez utiliser cette fonction pour rogner les entrées de formulaire afin de garantir l'envoi de données valides.
La fonction peut être appelée de la manière suivante à titre d'exemple.
la source
le mien utilise une seule expression régulière pour rechercher les cas où un ajustement est nécessaire et utilise les résultats de cette expression régulière pour déterminer les limites de sous-chaîne souhaitées:
la seule décision de conception qui a été prise était d'utiliser une sous-chaîne pour effectuer la capture finale. s / \?: // (faire la capture à moyen terme) et et le fragment de remplacement devient:
il y a deux paris de performance que j'ai faits dans ces implants:
l'implémentation de la sous-chaîne copie-t-elle les données de la chaîne d'origine? si c'est le cas, dans le premier, lorsqu'une chaîne doit être coupée, il y a une double traversée, d'abord dans l'expression régulière (qui peut, espérons-le, être partielle), et deuxième dans l'extraction de la sous-chaîne. nous espérons qu'une implémentation de sous-chaîne ne fait référence qu'à la chaîne d'origine, donc les opérations comme la sous-chaîne peuvent être presque libres. croiser les doigts
quelle est la qualité de la capture dans l'im regex impl? le moyen terme, la valeur de sortie, pourrait potentiellement être très long. Je n'étais pas prêt à comprendre que la capture de tous les implants regex ne reculerait pas à une capture d'entrée de quelques centaines de Ko, mais je n'ai pas non plus testé (trop d'exécutions, désolé!). le second exécute TOUJOURS une capture; si votre moteur peut le faire sans prendre de coup, peut-être en utilisant certaines des techniques de cordage au fil ci-dessus, utilisez-le à coup sûr!
la source
Pour IE9 + et autres navigateurs
la source