J'ai la balise d'entrée suivante dans mon formulaire html5:
<p>
<label>Company Name*</label>
<input type="text" name="name" class="field" required pattern="[a-zA-Z0-9]+" />
</p>
Cela fonctionne correctement en vérifiant si le nom de la société est composé de caractères alphanumériques. Mais bien sûr, je souhaite autoriser des espaces dans le nom de la société. J'ai besoin de savoir ce que je devrais ajouter au motif.
Pourquoi ne pas ajouter un espace dans l'attribut de motif tel que pattern="[a-zA-Z0-9 ]+"
. Si vous souhaitez prendre en charge tout type d'espace, essayez pattern="[a-zA-Z0-9\s]+"
Ma solution est de couvrir toute la gamme des signes diacritiques:
([A-z0-9À-ž\s]){2,}
A-z
- pour tous les caractères latins
0-9
- pour tous les chiffres
À-ž
- pour tous les signes diacritiques
\s
- c'est pour les espaces
{2,}
- la chaîne doit comporter au moins 2 caractères
Pour éviter une entrée avec uniquement des espaces, utilisez: "[a-zA-Z0-9]+[a-zA-Z0-9 ]+"
.
eg: abc | abc aBc | abc 123 AbC 938234
Pour vous assurer, par exemple, que le premier nom de famille ET est entré, utilisez une légère variation telle que
"[a-zA-Z]+[ ][a-zA-Z]+"
eg: abc def
C'est une question assez ancienne, mais au cas où cela pourrait être utile pour n'importe qui, en partant d'une combinaison de bonnes réponses trouvées ici, j'ai fini par utiliser ce modèle:
pattern="([^\s][A-z0-9À-ž\s]+)"
Cela nécessitera au moins deux caractères, en veillant à ne pas commencer par un espace vide, mais en laissant des espaces entre les mots, ainsi que des caractères spéciaux tels que ą, ó, ä, ö
.
Utilisez ce code pour vous assurer que l'utilisateur n'entre pas seulement des espaces mais un nom valide:
pattern="[a-zA-Z][a-zA-Z0-9\s]*"
Utilisez comme ci-dessous le code de format
$('#title').keypress(function(event){
//get envent value
var inputValue = event.which;
// check whitespaces only.
if(inputValue == 32){
return true;
}
// check number only.
if(inputValue == 48 || inputValue == 49 || inputValue == 50 || inputValue == 51 || inputValue == 52 || inputValue == 53 || inputValue == 54 || inputValue == 55 || inputValue == 56 || inputValue == 57){
return true;
}
// check special char.
if(!(inputValue >= 65 && inputValue <= 120) && (inputValue != 32 && inputValue != 0)) {
event.preventDefault();
}
})