fr . comp . lang . javascript


Service Usenet Gratuit - You The Net .Com Consultez les groupes de news usenet nntp avec www.youthenet.com Postez et suivez voos fils de discussions gratuitement avec you the net .com le service gratuit de news en ligne

Re: test regexp + une version OK sur Fr Comp Lang Javascript



Groupes les plus fournis
sci astronautique lettres langue francaise rec son-image video materiel comp materiel optimisation comp os mac-os classiques comp reseaux ip rec arts musique jazz rec arts musique metal comp reseaux ethernet comp algorithmes lettres langues-anciennes grec test petites-annonces divers comp developpement agl windev sci electrotechnique usenet-fr emile durkheim comp sys palm-pilot comp lang python rec cuisine bonnes-adresses comp os linux configuration


Derniers posts youthenet
Re: Démission pour création d'entreprise commerce ou service Que pensez-vous de la doctrine de James Madison ? Re: envoi des données à un serveur html la demeure du chaos Re: Alice au pays de Free (d'après la t ribune) Re: Est-ce ue violation de la GPL? Re: L'ultra libéralisme du chemin de fer prôné par Sarkozy... Président langue de bois ? la compagnie de l'autre

actualité

JavaScript 2 s'annonce comme version minimaliste
Journal du Net - 27 août 2008
JavaScript 2 n'attendra pas la version 4 du langage ECMAScript. Parmi les entreprises ayant poussé en ce sens figurent plusieurs poids lourds, ...
source

actualité

Bien mais pas à ce point...
Journal du Net - Publié depuis 1 heure
Oui, j'ai rencontré des problèmes de compatibilités JavaScript, ou des bugs qui sont apparus sur des pages mêlant flash et JavaScript. ...
source

Accueil |  Ajouter aux Favoris |  Inscription |  connexion |  Flux RSS de fr.comp.lang.javascript |

fr . comp . lang . javascript

Re: test regexp + une version OK



accueil . fr . comp . lang . javascript




Re: test regexp + une version OK

   
Sujet: Re: test regexp + une version OK
De: om+news (l' arobase) miakinen.net (Olivier Miakinen)
Groupes: fr.comp.lang.javascript
Organisation: Neottia nidus-avis
Date: 05. Jun 2008, 15:00:02
Le 05/06/2008 14:18, SAM a écrit :

sauf erreur de copier-coller,
SAM disait qu'un RegExp construit à partir d'une chaîne contenant '+\+'
ne plante pas sur Safari (et retourne même une valeur non nulle).

Je viens de re-vérifier :

javascript:alert(navigator.userAgent.match(RegExp(' AppleWebKit\/[^ ]+\+
')));

dans mon Safari qui en est très content et me renvoie son Nom et N°
au lieu de faire "error" comme dans Fx

Ah ! D'après Bertrand (Labévue), c'est que ta version de Safari est plus
ancienne que la sienne.

tests Safari 2 :

Je les mets dans un autre ordre afin de les commenter.

3) javascript:alert("abbc abbb+c".match(RegExp('ab+\\+c')));

   abbb+c

Pas de surprise ici. La RegExp vaut /ab+\+c/, qui demande une lettre a
suivie d'un nombre quelconque (non nul) de lettres b, puis d'un +, avant
de finir par une lettre c.

5) javascript:alert("abbc abbb+c".match(RegExp('a(b+)+c')));

   abbc,bb

Cette RegExp est un peu stupide et inefficace, mais elle est correcte.
Entre le a et le c, je voudrais un nombre non nul de fois une séquence
d'un nombre non nul de b.

Elle est stupide car (b+)+ est équivalent à (b+), et inefficace car
l'interprète de RegExp risque de devoir étudier un grand nombre de cas
possibles avant de décider qu'il n'y a pas de réponse. Par exemple, dans
le cas "abbbbX", il étudiera :
 a(bbbb) -> erreur
 a(bbb)(b) -> erreur
 a(bb)(bb) -> erreur
 a(b)(bbb) -> erreur
 a(bb)(b)(b) -> erreur
 a(b)(bb)(b) -> erreur
 a(b)(b)(bb) -> erreur
 a(b)(b)(b)(b) -> erreur
et le nombre de cas augmente exponentiellement avec la longueur !

Noter que les parenthèses internes sont capturantes, ce pourquoi on a
comme résultat « abbc,bb » et non simplement « abbc ».

4) javascript:alert("abbc abbb+c".match(RegExp('a(?:b+)+c')));

   abbc

Ici, j'ai juste fait en sorte que les parenthèses ne soient pas
capturantes. Le « (?:b+)+ » est donc équivalent à ce que serait
« b++ » si cette syntaxe (stupide) était autorisée.

1) javascript:alert("abbc abbb+c".match(RegExp('ab++c')));
2) javascript:alert("abbc abbb+c".match(RegExp('ab+\+c')));

   abbc

Ces deux syntaxes, comme on a vu, créent une RegExp égale à /ab++c/
puisque le '\+' est transformé en '+' lors de la lecture de la chaîne
de caractères.

Visiblement, la version récente de Safari reconnaît qu'il est idiot
d'enchaîner deux quantificateurs '+' de suite, tandis que la version
plus ancienne ne se pose pas de questions.

Noter qu'on peut parfois rencontrer deux quantificateurs de suite,
mais avec une sémantique modifiée. Ainsi, '*?' signifie '*' en inversant
la gourmandise de la recherche, et '+?' signifie '+' avec le même
changement de gourmandise. Mais '++' n'est pas prévu.

----------------------------------------------------------------------

Et donc, pour en revenir à l'expression initiale, Safari 2
interprète ceci :
   RegExp(' AppleWebKit\/[^ ]+\+ ')
qui est équivalent à ceci :
   RegExp(' AppleWebKit\/[^ ]++ ')
comme s'il lisait cela :
   RegExp(' AppleWebKit\/[^ ]+ ')
(sauf qu'il consomme plus de ressources pour ça).


Date Sujet  Auteur
04.06. * test regexpUne Bév ue
04.06. `* Re: test regexp + petite précisionUne Bév ue
04.06.  +* Re: test regexp + petite précisionUne Bév ue
04.06.  |+* Re: test regexp + une version OKUne Bév ue
04.06.  ||+- Re: test regexp + une version OKSAM
04.06.  ||`* Re: test regexp + une version OKOlivier Miakine
04.06.  || +* Re: test regexp + une version OKSAM
04.06.  || |`- Re: test regexp + une version OKUne Bév ue
04.06.  || `* Re: test regexp + une version OKUne Bév ue
04.06.  ||  `* Re: test regexp + une version OKOlivier Miakine
05.06.  ||   `* Re: test regexp + une version OKUne Bév ue
05.06.  ||    `* Re: test regexp + une version OKOlivier Miakine
05.06.  ||     `* Re: test regexp + une version Une Bév ue
05.06.  ||      `* Re: test regexp + une versioOlivier Miakine
05.06.  ||       +* Re: test regexp + une versUne Bév ue
05.06.  ||       |`* Re: test regexp + une veOlivier Miakine
05.06.  ||       | +- Re: test regexp + une Une Bév ue
05.06.  ||       | `- Re: test regexp + une Une Bév ue
05.06.  ||       `* Re: test regexp + une versSAM
05.06.  ||        `* Re: test regexp + une veOlivier Miakine
05.06.  ||         `* Re: test regexp + une SAM
05.06.  ||          `* Re: test regexp + unOlivier Miakine
05.06.  ||           `- Re: test regexp + SAM
04.06.  |`* Re: test regexp + petite précisionSAM
04.06.  | `* Re: test regexp + petite précisionUne Bév ue
04.06.  |  +* Re: test regexp + petite précisionSAM
04.06.  |  |`* Re: test regexp + petite précisionUne Bév ue
04.06.  |  | `- Re: test regexp + petite précisionSAM
04.06.  |  `- Re: test regexp + petite précisionOlivier Miakine
04.06.  `* Re: test regexp + petite précisionSAM
04.06.   `* Re: test regexp + petite précisionUne Bév ue
04.06.    `* Re: test regexp + petite précisionSAM
04.06.     +* Re: test regexp + petite précisionUne Bév ue
04.06.     |`* Re: test regexp + petite précisionSAM
04.06.     | +* Re: test regexp + petite précisionSAM
04.06.     | |`* Re: test regexp + petite précisiUne Bév ue
04.06.     | | `- Re: test regexp + petite préciOlivier Miakine
04.06.     | +- Re: test regexp + petite précisionUne Bév ue
04.06.     | `- Re: test regexp + petite précisionOlivier Miakine
04.06.     `- Re: test regexp + petite précisionOlivier Miakine
Derniers articles
petites-annonces informatique autos mitsubishi jobs offres jobs demandes jobs d jobs rec moto soc politique rec photo numerique misc engueulades petites-annonces informatique sci physique misc droit comp os linux configuration soc religion

Derniers messages
petites-annonces informatique autos mitsubishi jobs offres jobs demandes jobs d jobs rec moto sci psychanalyse reseaux telecoms adsl soc politique sci physique misc droit misc engueulades rec photo numerique soc religion

actualité

JavaScript 2 s'annonce comme version minimaliste
Journal du Net - 27 août 2008
JavaScript 2 n'attendra pas la version 4 du langage ECMAScript. Parmi les entreprises ayant poussé en ce sens figurent plusieurs poids lourds, ...
source

actualité

Et les normes '
01net - Il y a 7 heures
Pour le developpeur Web > Il ne serait alors plus obliger de multiplier les procédures de controles et les fonctions Javascript pour pallier au non respect ...
source


 




Copyright 2008 ©  - YouTheNet.com

| estrés |