Expressions rationnelles et caractère "?" - HTML/CSS - Programmation
Marsh Posté le 30-06-2004 à 19:58:46
http://www.asp-php.net/tutorial/scripting/regexp.php
PS: RegEX = regular expression donc expression régulière
Marsh Posté le 30-06-2004 à 22:06:41
Erkethan a écrit : J'ai un problème délicat avec une expression rationnelle (et non régulière comme certains disent) |
Dans ce cas, pourquoi tu as appelé ta variable "reg"
Sinon pour échapper c'est \
Marsh Posté le 30-06-2004 à 22:32:54
http://developpeur.journaldunet.co [...] xp1a.shtml
gm_superstar a écrit : Dans ce cas, pourquoi tu as appelé ta variable "reg" |
RegExp pour Regular Expression.
Sinon, j'avais déja essayé \, ca ne marche pas, et donne le même résultat.
Marsh Posté le 30-06-2004 à 22:38:08
Je maintiens que c'est \ pour échapper un caractère spécial...
Mais en JS mieux vaut déclarer une regexp comme ça :
re = /oui\?/gi;
Il y a beaucoup moins de soucis qu'avec RegExp()
http://devedge.netscape.com/librar [...] ml#1010922
Marsh Posté le 30-06-2004 à 23:03:34
C'est bon, j'ai trouvé
Il fallait échapper l'échapement
new RegExp("oui\\?","gi" ); |
Et ? est pris comme un caractère normal.
J'ai pas essayé l'autre déclaration, je la trouve moins .. conforme aux syntaxe que je vois d'habitude
Marsh Posté le 30-06-2004 à 23:38:57
Erkethan a écrit : J'ai pas essayé l'autre déclaration, je la trouve moins .. conforme aux syntaxe que je vois d'habitude |
C'est pourtant la notation usuelle... Celle qu'on trouve dans les scripts shells, perl, etc...
Marsh Posté le 30-06-2004 à 17:04:56
Bonjour tous
J'ai un problème délicat avec une expression rationnelle (et non régulière comme certains disent) en JavaScript.
Comme on dit, un petit scrpit vaut mieux qu'un long discours :
<script language="JavaScript">
var chaine = "oui? bien.";
var reg = new RegExp("oui?","gi" );
document.write(chaine.replace(reg,"non!" ));
</script>
A la 4eme ligne, le ? du motif est interprété comme définissant le caractère optionnel de la lettre précédente, i. Or je souhaite qu'il n'en soit rien, et qu'il soit consideré comme un caractère normal à remplacer. Je pense qu'il faille l'echapper, mais je n'ai pas trouvé comment (/ est sans effet).
Certes dans cet exemple, on peut contourner le problème en n'utilisant pas d'expression rationnelle, mais il s'agit en réalité d'un vrai-faux exemple, j'ai juste besoin de savoir comment utiliser ? dans le motif d'une expression rationnelle en tant que caractère de texte.
Merci