Alors j'ai essayé ceci:
if (/^[a-zA-Z]/.test(Word)) {
// code
}
Il n'accepte pas ceci: " "
Mais il accepte ce: "Word word"
, qui contient un espace: /
Y at-il un bon moyen de le faire?
Avec /^[a-zA-Z]/
vous ne cochez que le premier caractère:
^
: Assert la position au début de la chaîne[a-zA-Z]
: correspond à un seul caractère présent dans la liste ci-dessous: a-z
: un caractère compris entre "a" et "z"A-Z
: un caractère compris entre "A" et "Z"Si vous voulez vérifier si tous les caractères sont des lettres, utilisez ceci à la place:
/^[a-zA-Z]+$/.test(str);
^
: Assert la position au début de la chaîne[a-zA-Z]
: correspond à un seul caractère présent dans la liste ci-dessous: +
: entre une et plusieurs fois, autant que possible, en rendant au besoin (gourmand)a-z
: un caractère compris entre "a" et "z"A-Z
: un caractère compris entre "A" et "Z"$
: Assert la position à la fin de la chaîne (ou avant le saut de ligne à la fin de la chaîne, le cas échéant)Ou, en utilisant l’indicateur insensible à la casse i
, vous pouvez le simplifier pour:
/^[a-z]+$/i.test(str);
Ou, puisque vous ne voulez que test
, et non match
, vous pouvez vérifier le contraire et l'annuler:
!/[^a-z]/i.test(str);
Vous avez besoin
/^[a-zA-Z]+$/
Actuellement, vous faites correspondre un seul caractère au début de la saisie. Si votre objectif est de faire correspondre les lettres (un ou plusieurs) du début à la fin, vous devez répéter la correspondance de caractère a-z (en utilisant +
) et spécifier que vous voulez faire correspondre tout le chemin jusqu'à la fin (via $
).
Le moyen le plus rapide est de vérifier s’il existe une non-lettre:
if (!/[^a-zA-Z]/.test(Word))
Essaye ça
var Regex='/^[^a-zA-Z]*$/';
if(Regex.test(Word))
{
//...
}
Je pense que cela fonctionnera pour vous.