Expressions rationnelles et caractère "?"

Expressions rationnelles et caractère "?" - HTML/CSS - Programmation

Marsh Posté le 30-06-2004 à 17:04:56    

Bonjour tous  :hello:
 
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  :)

Reply

Marsh Posté le 30-06-2004 à 17:04:56   

Reply

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  ;)


Message édité par Flyman30 le 30-06-2004 à 20:00:17
Reply

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" :o
 
Sinon pour échapper c'est \


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 30-06-2004 à 22:32:54    

http://developpeur.journaldunet.co [...] xp1a.shtml  :hello:  
 

gm_superstar a écrit :

Dans ce cas, pourquoi tu as appelé ta variable "reg" :o
 
Sinon pour échapper c'est \

RegExp pour Regular Expression.  :ange:  
 
 
Sinon, j'avais déja essayé \, ca ne marche pas, et donne le même résultat.


Message édité par Erkethan le 30-06-2004 à 22:34:46
Reply

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


Message édité par gm_superstar le 30-06-2004 à 22:41:28

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 30-06-2004 à 23:03:34    

C'est bon, j'ai trouvé :)
 
Il fallait échapper l'échapement :p
 

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  :pt1cable:

Reply

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  :pt1cable:


C'est pourtant la notation usuelle... Celle qu'on trouve dans les scripts shells, perl, etc...


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed