vérifier une zone de texte pour les caractères non valides à l'aide de js et les expressions régulières
Je vais avoir du mal à comprendre comment RegExp travail.
J'ai besoin de réécrire un code ASP dans le html et le js, et j'ai frappé un obstacle dans cette partie:
<asp:RegularExpressionValidator runat="server" id="RegExpValidator" controltovalidate="FileName" Display="Dynamic" ValidationExpression="[^#%&*:<>?/{|}]+">
Maintenant, ce que j'ai à faire est de créer une zone de texte de saisie qui va exécuter une fonction js à chaque fois que son contenu est en train de changer.
<input type="text" id="fileNameTextBox" class="ms-input" size="35" maxlength="123" onchange="regexValidator(this);"/>
function regexValidator(control) {
var val = $(control).val();
if(val == undefined || val == '') {
$(control).attr("class", "invalid");
}
else {
//Regex stuff goes in here
}
}
Maintenant, pour la vie de moi je ne peux pas comprendre comment construire l'expression régulière. Le ValidationExpression champ je suppose vérifie pour les caractères non valides mais il ne semble pas être correctement construit regex, et je ne peux pas comprendre comment l'écrire dans un bon pour une utilisation avec js. Quelqu'un pourrait-il m'aider à sortir avec cette?
OriginalL'auteur Rafał Saltarski | 2012-10-17
Vous devez vous connecter pour publier un commentaire.
Si vous voulez que la regex pour vérifier les caractères non valides dans le champ, vous pouvez utiliser cette.
^.*?(?=[\^#%&$\*:<>\?/\{\|\}]).*$
Cela vous donnera un match si il y a au moins un caractère non valide.Veuillez accepter la réponse si cela répond à votre question. De cette façon, les utilisateurs avec la même question peut trouver une réponse rapidement.
OriginalL'auteur pogo
Vous y êtes presque. Maintenant, vous avez juste besoin de s'assurer, que votre chaîne seulement se compose de caractères valides. Ce faire par l'ajout de points d'ancrage pour le début et la fin de la chaîne, de sorte que la séquence répétée couvre l'ensemble de la chaîne:
EDIT: je viens de réaliser que vous avez probablement vous aussi vous voulez savoir comment créer une expression régulière dans une chaîne. Vous pouvez tout simplement passer d'une chaîne à une regex constructeur:
La classe de caractères est réduite à néant, il va vérifier si tous les personnages sont valides.
OriginalL'auteur Martin Ender
[^#%&*:<>?/{|}]+
ressemble à une expression valide pour moi (bien que généralement les expressions régulières sont enfermés dans l'avant-barres obliques). Il s'agit essentiellement de vérifier pour voir si le nom de fichier contient des caractères illégaux dans les crochets (en dehors de l'accent circonflexe^
qui indique la négation).OriginalL'auteur FixMaker