2017-06-12 3 views
2

Je dois avoir un champ de saisie où l'utilisateur peut seulement entrer 7 chiffres, rien de plus, rien de moins, rien d'autre.Combinaison de deux regex dans le "pattern" de restriction d'entrée

Je dois (vérifier 7 caractères)

pattern=".{7,7}" 

et (vérifier les numéros seulement)

pattern="\d*" 

travaillant ensemble, mais vous ne pouvez pas définir deux fois de motif, comment pourrais-je combiner ces deux ensemble?

Répondre

2

Vous pouvez utiliser

pattern="\d{7}" 

ou avec des ancres explicites:

pattern="^\d{7}$" 

See a regex demo.

Vous n'avez pas besoin de spécifier des valeurs identiques pour les seuils minimum et maximum. Dans le cas où vous voulez autoriser de 1 à 7 chiffres, alors cela a du sens: pattern="\d{1,7}".

input:valid { 
 
    color: black; 
 
} 
 
input:invalid { 
 
    color: navy; 
 
}
<form name="form1"> 
 
<input type="text" pattern="\d{7}" title="7 digits only!" required/> 
 
<input type="Submit"/> 
 
</form>

Pour rendre le champ d'entrée obligatoire, ajoutez l'attribut required.

+0

Une autre question: si vous ne l'entrée, le formulaire envoie toujours, que puis-je ajouter pour arrêter cela? – vlovystack

+0

@MatthiasVerhoeven: utilisez l'attribut 'required'. –

0

Essayez ce code

pattern="[0-9]{7}"