8
votes

Expression régulière en JavaScript qui permet une backpace

Mon expression régulière qui permet aux caractères, numéros, points et sous-traitants est xxx

Comment puis-je autoriser l'espace de retour dans cet ex.


2 commentaires

Quel est le point d'avoir Backspace dans Regex? Et qu'en est-il de Supprimer alors? Je suppose que votre problème peut être résolu d'une manière différente, si vous en racontez plus à ce sujet.


Le problème est que lorsque j'appuie sur le dos dans une zone de texte vide, l'expression régulière le valide et jette une erreur.


5 Réponses :


22
votes

Vous pouvez utiliser [\ b] pour correspondre à la casse arrière. Donc, il suffit de l'ajouter à votre classe de caractères: - xxx

Notez que vous n'avez pas besoin d'échapper à dot (.) dans la classe de caractères. Il n'a pas de signification spéciale là-bas.

Voir aussi: -


9 commentaires

@Timpietzcker .. Je n'ai pas testé cela, mais cela devrait fonctionner. Et dans cette page, il est mentionné quelque part dans la table. S'il vous plaît jetez un coup d'oeil à nouveau. Il dit: - [\ b] , correspond à la barre oblique inverse.


@Rohitjain Il est écrit: - [\ b], correspond aux correspondances Backslash . Vous vouliez dire retour sur arrière, non?


@Naveeds .. AW! Vrai. Cette faute de frappe à nouveau.


@Amith .. Avez-vous essayé la regex que j'ai donné?


@Amith .. Eh bien, comment essayez-vous de le tester? Comment entrez-vous dans le backpace?


Le problème est que lorsque j'appuie sur le dos dans une zone de texte vide, l'expression régulière le valide et jette une erreur.


@Amith .. Et que voulez-vous que cela fasse? Quelle erreur il jette. Veuillez poster des détails complets, sur quelle est l'entrée et la sortie attendue.


J'ai une zone de texte sous une forme. Sur la touche, la presse, je valide que je ne valte pas de saisir des caractères spéciaux, des chiffres, etc. Si un utilisateur entrait son nom et sur quoi le supprimer, il appuie sur arrière-plan et lorsqu'il supprime le dernier caractère dans la zone de texte, dites à AMITH et lorsqu'il supprime A et appuyez sur BackSpace Encore une fois son erreur de validation


@Amith: Vous ne devez pas exécuter la validation lorsque la zone de texte n'a pas de texte. La validation doit toujours s'appliquer lorsque l'utilisateur cliquez sur Soumettre, cependant. Le caractère arrière \ b n'est pas reflété dans le texte lorsque vous appuyez sur BackSpace.



0
votes

La solution optimale de ce problème est de vérifier la valeur de la zone de texte> 0 avant de valider. Cela vous aidera à résoudre les erreurs montrant tout en appuyant sur la touche Sackpace dans une zone de texte vide .. !!


0 commentaires

1
votes

Je vous suggère de réécrire votre regex à: xxx

ou: xxx


1 commentaires

Cela fonctionne pour moi. Merci d'avoir partagé :)



1
votes

Vérifiez contre "Event.KeyCode" et "Value.Length" avant de vérifier l'expression régulière.
Codcode 8 = backslash xxx


0 commentaires

0
votes

J'ai également fait un texte de type d'entrée qui accepte uniquement les numéros (non décimal) et le clavier arrière arrière. Je remarque que mettre [\ b] dans l'expression régulière n'est pas nécessaire dans le navigateur non Firefox.

var regExpr = new RegExp("^[0-9,\b][0-9,\b]*$");


0 commentaires