J'ai une zone de texte d'entrée qui exécute une fonction js sur l'événement keyup pour correspondre à une chaîne valide (correspondance de modèle de nom de domaine, la regex a été trouvée ici).Comment configurer cette fonction de correspondance de regex javascript?
J'ai écrit les instructions if pour tester si l'entrée est un motif valide d'abord, puis plus de 3 caractères.
Apparemment, mes ifs ne fonctionnent pas comme je le voulais. Lorsque l'entrée a 3 caractères ou plus, c'est bien. Mais si l'entrée est inférieure à 3 caractères, l'expression rationnelle du motif échoue. Exemple: si la boîte de saisie a "dd" (sans guillemets), la fonction alertera que j'ai un motif incorrect quand il DEVRAIT avertir que l'entrée a moins de 3 caractères. A partir de l'instruction d'alerte incluse, il n'y a pas d'espaces ou de caractères supplémentaires dans la valeur d'entrée.
<input id="quick" type="text" size="20" onKeyUp="test()"></input>
le test de fonctionnement est
function test(){
var liveword = document.getElementById("quick").value;
var valid = /^[a-zA-Z0-9][a-zA-Z0-9\-\_]+[a-zA-Z0-9]$/;
alert("xxx"+liveword+"xxx");
if (liveword.match(valid))
{
if (liveword.length < 3)
{
alert ('word less than 3');
}
else {
alert ('word more than 3');
}
}//outside if
else {
alert('enter correct pattern');
}
} //close
Salut JGB, merci pour le code regex. J'ai reçu le code d'un autre message et il a semblé fonctionner de façon indépendante au début, mais je suppose que cela ne fonctionne pas en conjonction avec les instructions if que j'ai incluses. Regex est l'un de ces types de choses que vous comprenez ou non, et je ne le comprends pas. – jamex
@jamex: De rien. Regex jette beaucoup de monde, donc vous êtes en bonne compagnie. Étiez-vous capable d'obtenir l'effet que vous vouliez avec l'un des motifs regex que j'ai fournis? –
merci, je viens de le tester (votre deuxième regex), et ça fonctionne parfaitement. Merci encore. – jamex