Javascript pour supprimer les espaces à partir d'une zone de texte valeur
J'ai cherché autour de cette beaucoup et ne pouvez pas trouver un exemple précis de ce que je suis en train de faire. Fondamentalement, je veux récupérer la valeur d'une zone de texte, par le nom de la zone de texte (pas d'id). Alors je veux enlever TOUS les espaces, et pas seulement la tête ou à la fuite, mais les espaces dans le texte. Par exemple pour ce code html:
<INPUT style="TEXT-ALIGN: right;" onkeyup="fieldEdit();" onchange="fieldChange();" NAME="10010input" VALUE="4 376,73" readonly >
J'ai ce javascript:
var val = document.CashSheet.elements["10010input"].value;
val2 = val.replace(<someregex>, '');
alert(val2);
Mais j'ai essayé de nombreuses expressions régulières que de supprimer tous les espaces, mais tous ne semblent supprimer attaque et de fuite des espaces, par exemple la valeur au-dessus de 4 376,73 devrait se lire comme 4376,73 dans l'alerte ci-dessus, mais il ne le fait pas. Lorsque l'on regarde ce que c'est normal regex pour enlever spacesfrom un contenu du champ de texte n'est pas de travail et je crois que c'est parce que son être peuplée de polonais localisée paramètres sur le serveur web. Ce \u char/regex exp ai-je besoin de capture pour une "polonaise de l'espace" pour ainsi dire, en ascii, il arrive que des 20 mais les regex exps que la plupart des gens sont ce qui suggère pour les espaces de ne pas le capturer.
OriginalL'auteur TMS | 2010-10-18
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
document.getElementsByName
pour se procurer de l'élément sans avoir besoin de passer par la forme, tant qu'aucun autre élément dans la page du même nom. À remplacer tous les espaces, il suffit d'utiliser une expression régulière avec l'indicateur global fixé à la valeur de l'élément dureplace()
méthode:Vraiment? Êtes-vous sûr que ce n'est pas 20 en hexadécimal (l'espace normal de caractère est de 20 hex)? Si vous avez besoin de spécifier une liste de caractères d'espace pour correspondre vous pourriez faire quelque chose comme
new RegExp("[\\s\u1234\u4321]", "g")
au lieu de/\s/
.Yep, son retour comme "4 376", si j'essaie que les regex sur elle, il ne fait rien, mais si j'ai ajouter un "a" à la fin de la chaîne de la regex va faire une sortie comme ceci: "4 376aa" de sorte qu'il fonctionne sur mon espace mais pas sur l'espace de retour du polonais serveur web. Je pense que c'est un autre espace Unicode caractère, que je vais essayer de trouver lequel c'est ensuite l'utiliser vous new RegExp appel.
Ok j'ai trouvé sa \u00A0 , donc un nbsp, mais il faut trouver une expression régulière qui correspond à que maintenant, dans le new RegExp("[\\s\u00A0]", "g") ne fonctionne pas 🙁
Vraiment?
new RegExp("[\\s\u00A0]", "g").test("\u00A0");
fonctionne pour moi, y compris dans IE (dans lequel\s
ne correspond pas\u00A0
, en violation de la ECMAScritp spec).OriginalL'auteur Tim Down
Vous avez besoin de "généraliser" que regexp vous êtes en utilisant ce qu'il est appliqué à tous les matchs au lieu de simplement la première. Comme ceci:
Avis le " g " qui modifie l'expression de sorte qu'il devient "général".
\s
caractère de classe; je serais probablement utiliser le travail "global" au lieu de "général"Pourquoi est -
\s
nettement mieux que juste un caractère d'espace ici? Il ne peut pas y avoir de caractères de saut de ligne dans une<input>
et les espaces insécables ne sont pas couramment tapé dans une zone de texte.Haren: je savais que ça a commencé avec un "g", mais je ne savais pas qui il était exactement. @Tim Bas: je pense que \s est plus lisible, n'est-ce pas?
Je ne sais pas. Tout à fait subjective, je dirais. Ce n'est pas un gros problème, et
\s
est probablement la meilleure option fonctionnalité-sage.Il y a des dizaines de caractères espace qui pourrait être collé qui ne sont pas un simple "espace"
OriginalL'auteur Abel Tamayo
Voici une fonction que j'utilise pour remplacer les espaces.
OriginalL'auteur James Lawruk
Un autre, plus jQuery new'ish option:
merci homme cela a fonctionné pour moi
OriginalL'auteur yglodt
Essayer Cette
OriginalL'auteur Muddasir Abbas
vous pouvez utiliser cette méthode jQuery http://api.jquery.com/jQuery.trim/
val = $.trim(val);
OUval = jQuery.trim(val);
OriginalL'auteur Amr Badawy