Caractères spéciaux pour texte [Résolu]

Signaler
Messages postés
92
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
12 avril 2010
-
Messages postés
92
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
12 avril 2010
-
Bonjour,

J'essaye de faire un test en javascript :

^[-.,_ a-zA-Z0-9áàâäãéèêëíìîïóòôöõúùûüýÿÁÀÂÄÃÉÈÊËÍÌÎÏÓÒÔÖÕÚÙÛÜÝ:/?]{8,15}$

j'aimerais placer un \s pour autoriser les retours chariots, mais je ne sais pas ou le mettre ?

Merci de votre aide.

Cordialement, Alex

7 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
tentes \\s JS n'aime peut etre pas ton \

>$*<%+=

etc...

genre :

^[^>$*<%+=]{8,15}$

Sinon, le plus simple n'est-li pas d'interdire ces caractères, plutot que d'autoriser les autres ?






Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
\r les retours chariots
\n new line
\t tab

parce que \s c'est en fait espaces, tabulations, sauts de lignes...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
92
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
12 avril 2010

Bonjour Renfield,

Oui, tu as raison, je me suis mal exprimé, je voudrais placer un \s pour pouvoir insérer aussi les tabulations etc...

Merci.

Cordialement, Alex
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
suffit de placer ton \s entre tes crochets, comme n'importe quel caractère.

quels son, au final les caractères interdits pat ta regexp ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
92
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
12 avril 2010

J'ai une erreur javascript si je met \s dans les corchets :

Détails de l'erreur de la page Web

Agent utilisateur : Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.30729; InfoPath.2; WWTClient2)
Horodateur : Mon, 12 Apr 2010 11:41:24 UTC

Message : Plage incorrecte dans le jeu de caractères
Ligne : 349
Caractère : 7
Code : 0

^[\s-.,_ a-zA-Z0-9áàâäãéèêëíìîïóòôöõúùûüýÿÁÀÂÄÃÉÈÊËÍÌÎÏÓÒÔÖÕÚÙÛÜÝ:/?]{8,15}$

( j'veux interdire les >$*<%+= etc... )

Cordialement, Alex
Messages postés
92
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
12 avril 2010

Par mesure de sécurité, je préfère sélectionner les caractères autorisés.

Cela évite les injections de code par combinaison (brute force) dans le

cas ou j'oublie d'interdire un caractère qui ouvre une faille.

Biensure ma regex sera ensuite utilisée en php pour le control de ma

variable.

( le \\s ne fonctionne pas )


Cordialement, Alex
Messages postés
92
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
12 avril 2010

ok, c'était ça \\\s

je suis en echo (php)

j'ai repris le code en HTML simple :

<html>
<head>
<title>RegExp</title>
<script>
function verifTexte(myTexte) {
with(document.getElementById("resp")) {
var myReg=new RegExp("^[\\s-.,_a-zA-Z0-9áàâäãéèêëíìîïóòôöõúùûüýÿÁÀÂÄÃÉÈÊËÍÌÎÏÓÒÔÖÕÚÙÛÜÝ:/?]{8,15}$");
if(myReg.test(myTexte)) {innerHTML="oui"} else {innerHTML="non"}
}
}
</script>
</head>


non

<textarea name="texte" cols="40" rows="5" onkeyup="verifTexte(this.value)" onchange="verifTexte(this.value)"></textarea>

</html>

et ça fonctionne impec.

Merci Renfield.

@++