J'ai une page avec une zone de texte où un utilisateur est censé entrer un code d'enregistrement de 24 caractères (lettres et chiffres, insensible à la casse). J'avais l'habitude maxlength
de limiter l'utilisateur à la saisie de 24 caractères.
Les codes d'enregistrement sont généralement donnés sous forme de groupes de caractères séparés par des tirets, mais j'aimerais que l'utilisateur saisisse les codes sans les tirets.
Comment puis-je écrire mon code JavaScript sans jQuery pour vérifier qu'une chaîne donnée que l'utilisateur saisit ne contient pas de tirets, ou mieux encore, ne contient que des caractères alphanumériques?
javascript
string
Rivière Vivian
la source
la source
inArray
.Réponses:
Pour trouver "bonjour" dans
your_string
Pour l'alpha numérique, vous pouvez utiliser une expression régulière:
http://www.regular-expressions.info/javascript.html
Expression régulière alphanumérique
la source
/hello/g.test(your_string)
. Bien que indexOf fonctionne, je pense qu'un test d'expression rationnelle raconte une meilleure histoire de ce que vous essayez d'accomplir. Si j'essaie de trouver une séquence de caractères à l'intérieur d'une chaîne, l'index n'est pas pertinent.Avec ES6. Inclut ()
E: non pris en charge par IE - à la place, vous pouvez utiliser l'opperateur Tilde
~
( Bitwise NOT ) avec .indexOf ()Utilisé avec un nombre, l'opérateur Tilde le fait
~N => -(N+1)
. Utilisez-le avec double négation!!
( NOT logique ) pour convertir les nombres en bools:la source
Si vous avez le texte en variable
foo
:Cela permettra de tester et de s'assurer que l'utilisateur a entré au moins un caractère et n'a saisi que des caractères alphanumériques.
la source
vérifier si la chaîne (mot / phrase ...) contient un mot / caractère spécifique
la source
ES6 contient une méthode intégrée (
includes
) dans les chaînesprototype
, qui peut être utilisée pour vérifier si la chaîne contient une autre chaîne ou non.Le polyfill suivant peut être utilisé pour ajouter cette méthode dans les navigateurs non pris en charge. ( Source )
la source
Utilisez une expression régulière pour accomplir cela.
la source
Vous pensez tous trop fort. Utilisez simplement une expression régulière simple, c'est votre meilleur ami.
Apprenez Regex en 5 minutes?
la source
if ( string1.test(regex) ) { alert("He likes pizza!"); }
var regex = /^[a-z0-9]+$/i
regex.test(string1)
regex.test(str)
. (str.match(regex)
est similaire, mais ne renvoie pas de booléen.)Si vous recherchez des caractères au début ou à la fin de la chaîne, vous pouvez également utiliser
startsWith
etendsWith
la source
la source
Pour tester uniquement les caractères alphanumériques:
L'expression régulière teste 1 ou plusieurs (+) de l'ensemble de caractères 0-9, AZ et az, en commençant par le début de l'entrée (^) et en s'arrêtant par la fin de l'entrée ($).
la source
La réponse de Kevins est correcte mais elle nécessite un nombre "magique" comme suit:
Dans ce cas, vous devez savoir que -1 signifie non trouvé . Je pense qu'une version un peu meilleure serait:
la source
indexOf()
renvoie -1 si la chaîne n'est pas trouvée. C'est donc à peine plus magique que d'utiliser 0 .Essaye ça:
Voici un exemple: http://jsfiddle.net/oliverni/cb8xw/
la source
La fonction de recherche de String est également utile. Il recherche un caractère ainsi qu'une sous-chaîne dans une chaîne donnée.
'apple'.search('pl')
Retour2
'apple'.search('x')
revenir-1
la source
Si vous lisez des données du DOM telles que la balise ap ou h1, par exemple, vous voudrez utiliser deux fonctions natives JavaScript, c'est assez simple mais limité à es6, au moins pour la solution que je vais fournir. Je vais rechercher toutes les balises p dans le DOM, si le texte contient un "T", le paragraphe entier sera supprimé. J'espère que ce petit exemple aide quelqu'un!
HTML
JS
la source
Fonctionne parfaitement.Cet exemple vous aidera beaucoup.
la source
Démonstration: La méthode include () trouve le caractère «contient» dans la chaîne entière, elle retournera un vrai.
la source
Vérifiez si la chaîne est alphanumérique ou alphanumérique + certains caractères autorisés
La méthode alphanumérique la plus rapide est probablement celle mentionnée à: Meilleur moyen de vérification alphanumérique en Javascript car elle opère directement sur les plages de nombres.
Ensuite, pour autoriser quelques autres caractères supplémentaires en toute sécurité, nous pouvons simplement les mettre dans une
Set
recherche rapide.Je pense que cette mise en œuvre correctement les paires de substitution .
GitHub en amont .
Testé dans Node.js v10.15.1.
la source