HighDots Forums  

Probleme mit RegExp im IE 5.0

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Probleme mit RegExp im IE 5.0 in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Falk Lange
 
Posts: n/a

Default Probleme mit RegExp im IE 5.0 - 07-28-2003 , 08:06 AM






Hallo Leute,

habe ein Problem mit dem IE 5.0 in Zusammenhang mit einem RegExp.
Ich habe eine Funktion die Parameter die an einer URL dranhängen in
Ihre Einzelteile zerlegt und auch beachten muss das im Value Feld ein
uncodiertes '&' stehen kann. Nun zum Problem der IE 5.0 weigert sich
den Regulären Ausdruck auszuführen aufgrund des '?', nur das dies
meiner Ansicht nach notwendig ist da ja der kürzeste String extrahiert
werden soll.


Source:

function convertLinkToArray(SLink) {

tmpResult = new Array();
var re = new RegExp(/(\S+?)=([^=]*)&/);

re.exec(SLink);

for(i = 0; true; i++) {

tmpResult[i] = RegExp.$1 + '=' + RegExp.$2;

var rightCon = RegExp.rightContext;

rightCon.match(/=/);

if(RegExp.rightContext.match(/=/) == null) {
var tmp = rightCon.split('=');
tmpResult[i + 1] = tmp[0] + '=' + tmp[1];
break;
}
re.exec(rightCon);
}
return tmpResult;
}

Vielen Dank
Falk

Reply With Quote
  #2  
Old   
Martin Honnen
 
Posts: n/a

Default Re: Probleme mit RegExp im IE 5.0 - 07-28-2003 , 08:36 AM








Falk Lange wrote:
Quote:
Hallo Leute,

habe ein Problem mit dem IE 5.0 in Zusammenhang mit einem RegExp.
Ich habe eine Funktion die Parameter die an einer URL dranhängen in
Ihre Einzelteile zerlegt und auch beachten muss das im Value Feld ein
uncodiertes '&' stehen kann. Nun zum Problem der IE 5.0 weigert sich
den Regulären Ausdruck auszuführen aufgrund des '?', nur das dies
meiner Ansicht nach notwendig ist da ja der kürzeste String extrahiert
werden soll.


Source:

function convertLinkToArray(SLink) {

tmpResult = new Array();
var re = new RegExp(/(\S+?)=([^=]*)&/);
+?
wird erst seit IE5.5 und Netscape 6 unterstuetzt, es macht also z.Zt.
wenig Sinn, diesen Quantifier in JavaScript in HTML Seiten zu verwenden,
die beliebige Webbrowser besuchen.
Wenn man erst fuer
/[&;]/g
split aufruft und dann fuer /=/ sollte sich eigentlich die Argumente im
Querystring auslesen lassen.

--

Martin Honnen
http://JavaScript.FAQTs.com/



Reply With Quote
  #3  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Probleme mit RegExp im IE 5.0 - 07-28-2003 , 09:10 AM



Falk Lange wrote:

Quote:
var re = new RegExp(/(\S+?)=([^=]*)&/);
Das ist Unfug und funktioniert hier nur wegen des automagischen Typecasts
von RegExp nach String. Entweder Du definierst ein RegExp-Literal

var re = /(\S+?)=([^=]*)&/;

oder Du benutzt den Konstruktor des Prototyps, welcher einen String
erwartet. Da der Backslash auch in String-Literalen ein Escape-Zeichen ist,
musst Du ihn für die Konstruktor-Funktion erneut escapen (das hatten wir
gestern erst):

var re = new RegExp("(\\S+?)=([^=]*)&");

Allerdings sind Non-greedy Quantifier als Neuerung in JavaScript 1.5
nicht Bestandteil des Wortschatzes von IE < 6.0 und das Mozilla/ < 5.0.

Quote:
if(RegExp.rightContext.match(/=/) == null) {
RegExp.$x und typeof RegExp.rightContext == string sind in JavaScript 1.5
deprecated.

---> http://dcljs.de/links.php


PointedEars



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.