Je voudrais valider la saisie de l'utilisateur champ pour n'autoriser l'utilisateur à l'entrée +1,-1,+10,-10 et +25,-25, rien d'autre. Qu'est-ce que l'expression régulière de cette restriction?
Vous avez pour l'ancrage de l'expression régulière regex pour ne pas correspondre à -1000 par exemple Bon point, édité. Merci. vous êtes les bienvenus, +1. Il fonctionne - vérifié. Fournir un peu de code dans votre réponse, je vais vérifier.
Je ne vous embêtez pas avec une regexp. Sans doute, vous allez en fin de compte, pour analyser le nombre à partir d'une Chaîne de type int, oui? Dans ce cas, vous pourriez juste immédiatement analyser et vérifier le résultat est comme prévu, même si cela ne peut pas appliquer le signe "+" si c'est obligatoire, mais à vérifier manuellement pour le signe avant que l'analyse ne serait simple.
Si vous êtes tout à fait en autorisant uniquement les entrées spécifiées, et rien d'autre, puis les suivants regex va le faire:
/^[-+](1|10|25)$/
Mais que si quelqu'un entre "10" -- c'est à dire "+10", mais sans le signe plus? C'est qu'autorisé ou pas? Vous n'avez pas spécifié. Si c'est le cas, le+/-, doit être facultative, de sorte que la regex devient:
/^[-+]?(1|10|25)$/
Remarque que cette expression a également de début et de fin d'ancrage (ie ^ et $), ce qui signifie qu'il ne permettra pas les autres caractères de la chaîne. Sans eux, il peut correspondre à une chaîne qui contient "+20", parmi d'autres textes.
Essayer avec:
Il permettra à l'un de vos 6 possibilités.
Bon point, édité. Merci.
vous êtes les bienvenus, +1.
Il fonctionne - vérifié. Fournir un peu de code dans votre réponse, je vais vérifier.
OriginalL'auteur hsz
Je ne vous embêtez pas avec une regexp. Sans doute, vous allez en fin de compte, pour analyser le nombre à partir d'une Chaîne de type int, oui? Dans ce cas, vous pourriez juste immédiatement analyser et vérifier le résultat est comme prévu, même si cela ne peut pas appliquer le signe "+" si c'est obligatoire, mais à vérifier manuellement pour le signe avant que l'analyse ne serait simple.
OriginalL'auteur dty
Si vous êtes tout à fait en autorisant uniquement les entrées spécifiées, et rien d'autre, puis les suivants regex va le faire:
Mais que si quelqu'un entre "10" -- c'est à dire "+10", mais sans le signe plus? C'est qu'autorisé ou pas? Vous n'avez pas spécifié. Si c'est le cas, le+/-, doit être facultative, de sorte que la regex devient:
Remarque que cette expression a également de début et de fin d'ancrage (ie
^
et$
), ce qui signifie qu'il ne permettra pas les autres caractères de la chaîne. Sans eux, il peut correspondre à une chaîne qui contient "+20", parmi d'autres textes.OriginalL'auteur Spudley
Vous ne spécifiez pas une langue de la regex, mais cela devrait fonctionner:
[+-][12][05]?
+15
/-15
et ne permettent pas+1
/-1
Non, car il permettrait de "15" et "20".
oh pinaise, vous êtes tous les deux raison.
OriginalL'auteur drysdam