je veux savoir si userAgent comporte la chaine de caractère suivante :
AppleWebKit/527+
en particulier avec le "+" final et quelque soit le nombre, ici 527, et
qui pourrait être 525.18 (une version de build).
si j'écris le js suivant :
var isWebkitNightly=navigator.userAgent.match(RegExp(" AppleWebKit/[^
]+\+ "));
firefox me dit :
Erreur : invalid quantifier +
Fichier Source : http://127.0.0.1/Canvas/l_system_hair_ball.xhtml
Ligne : 69
si je supprime, juste pour essai, le \+, je n'ai pas cette erreur, j'en
déduis que le \+ a créé l'erreur.
je vais alors sur le site :
<http://www.regular-expressions.info/javascriptexample.html>
où j'entre :
Regexp: " AppleWebKit/[^ ]+\+ " // sans les ""
Subject string: "10_4_11; fr) AppleWebKit/525+ (KHT"
là, le même firefox 3RC1 ne me donne pas d'erreur, et pourtant le code
de cette page donne :
function demoMatchClick() {
var re = new RegExp(document.demoMatch.regex.value);
if (document.demoMatch.subject.value.match(re)) {
alert("Successful match");
} else {
alert("No match");
}
}
avec document.demoMatch.regex.value ce qui est entré en face de
"Regexp:"
et document.demoMatch.subject.value ce qui est entré en face de "Subject
string:"
il me semble que mon code est "équivalent" enfin, comme il ne marche pas
je me doute bien qu'il y a une différence, mais je ne vois pas laquelle.
--
Une Bévue
j'ajoute que si je teste, en local cette fonction :
function demoMatchClick() { var re = new RegExp(document.demoMatch.regex.value); if (document.demoMatch.subject.value.match(re)) { alert("Successful match"); } else { alert("No match"); } }
en la modifiant comme ceci (càd en incluant l'expression et le sujet directement : function demoMatchClick() { var re = new RegExp(" AppleWebKit/[^ ]++ "); if ("10_4_11; fr) AppleWebKit/527+ (KHTML".subject.value.match(re)) { return true; } else { return false; } }
j'ai la même erreur, la regexp entrée dans l'input text du site <http://www.regular-expressions.info/javascriptexample.html>
n'est donc pas exactement la même que celle entrée directement, comme ci-dessus, en chaîne de caractère...
pourtant, si je fais un alert(document.demoMatch.regex.value); je ne vois pas la différence, en particulier il y a bien un "+" dans l'expression.
-- Une Bévue
Une Bévue <unbewusst.sein@weltanschauung.com.invalid> wrote:
j'ajoute que si je teste, en local cette fonction :
function demoMatchClick() {
var re = new RegExp(document.demoMatch.regex.value);
if (document.demoMatch.subject.value.match(re)) {
alert("Successful match");
} else {
alert("No match");
}
}
en la modifiant comme ceci (càd en incluant l'expression et le sujet
directement :
function demoMatchClick() {
var re = new RegExp(" AppleWebKit/[^ ]++ ");
if ("10_4_11; fr) AppleWebKit/527+
(KHTML".subject.value.match(re)) {
return true;
} else {
return false;
}
}
j'ai la même erreur, la regexp entrée dans l'input text du site
<http://www.regular-expressions.info/javascriptexample.html>
n'est donc pas exactement la même que celle entrée directement, comme
ci-dessus, en chaîne de caractère...
pourtant, si je fais un alert(document.demoMatch.regex.value); je ne
vois pas la différence, en particulier il y a bien un "+" dans
l'expression.
j'ajoute que si je teste, en local cette fonction :
function demoMatchClick() { var re = new RegExp(document.demoMatch.regex.value); if (document.demoMatch.subject.value.match(re)) { alert("Successful match"); } else { alert("No match"); } }
en la modifiant comme ceci (càd en incluant l'expression et le sujet directement : function demoMatchClick() { var re = new RegExp(" AppleWebKit/[^ ]++ "); if ("10_4_11; fr) AppleWebKit/527+ (KHTML".subject.value.match(re)) { return true; } else { return false; } }
j'ai la même erreur, la regexp entrée dans l'input text du site <http://www.regular-expressions.info/javascriptexample.html>
n'est donc pas exactement la même que celle entrée directement, comme ci-dessus, en chaîne de caractère...
pourtant, si je fais un alert(document.demoMatch.regex.value); je ne vois pas la différence, en particulier il y a bien un "+" dans l'expression.
-- Une Bévue
unbewusst.sein
Une Bévue wrote:
(KHTML".subject.value.match(re)) {
typo , lire :
(KHTML".match(re)) {
-- Une Bévue
Une Bévue <unbewusst.sein@weltanschauung.com.invalid> wrote:
Curious c't'histoitre .. M'enfin : alert(navigator.userAgent.match(RegExp(/ AppleWebKit/[^ ]++ /))); donne toutes satisfactions
('null' avec mon Safari qui n'a pas le famous +) ('null' avec mon Fx qui n'a rien de tout ça)
oui, c'est ce que j'ai fini par faire : function isWebkitNightlyBuild(){ return / AppleWebKit/[^ ]++ /.test(navigator.userAgent); }
remarques que Webkit me donne aussi une erreur (moins bien formulée/précisée qu'avec Firefox) dans le premier cas, je vais poser la question sur clj des fois que... -- Une Bévue
SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> wrote:
Curious c't'histoitre ..
M'enfin :
alert(navigator.userAgent.match(RegExp(/ AppleWebKit/[^ ]++ /)));
donne toutes satisfactions
('null' avec mon Safari qui n'a pas le famous +)
('null' avec mon Fx qui n'a rien de tout ça)
oui, c'est ce que j'ai fini par faire :
function isWebkitNightlyBuild(){
return / AppleWebKit/[^ ]++ /.test(navigator.userAgent);
}
remarques que Webkit me donne aussi une erreur (moins bien
formulée/précisée qu'avec Firefox) dans le premier cas, je vais poser la
question sur clj des fois que...
--
Une Bévue
Curious c't'histoitre .. M'enfin : alert(navigator.userAgent.match(RegExp(/ AppleWebKit/[^ ]++ /))); donne toutes satisfactions
('null' avec mon Safari qui n'a pas le famous +) ('null' avec mon Fx qui n'a rien de tout ça)
oui, c'est ce que j'ai fini par faire : function isWebkitNightlyBuild(){ return / AppleWebKit/[^ ]++ /.test(navigator.userAgent); }
remarques que Webkit me donne aussi une erreur (moins bien formulée/précisée qu'avec Firefox) dans le premier cas, je vais poser la question sur clj des fois que... -- Une Bévue
Olivier Miakinen
j'ai remplacé mon test comme suit :
function isWebkitNightlyBuild(){ return / AppleWebKit/[^ ]++ /.test(navigator.userAgent); }
et là je n'ai pas de message d'erreur, et la détection est correcte :
Safari et Firefox sont à false Webkit à true.
ceci dit j'aimerais bien comprendre pourquoi ça ne marche pas avec :
var re=new RegExp(" AppleWebKit/[^ ]++ ");
Probablement parce que, « + » n'étant pas un caractère spécial pour les chaînes de caractères, « + » est équivalent à « + », et ta chaîne est donc équivalente à " AppleWebKit/[^ ]++ ".
Essaye avec : " AppleWebKit/[^ ]++ "
j'ai remplacé mon test comme suit :
function isWebkitNightlyBuild(){
return / AppleWebKit/[^ ]++ /.test(navigator.userAgent);
}
et là je n'ai pas de message d'erreur, et la détection est correcte :
Safari et Firefox sont à false
Webkit à true.
ceci dit j'aimerais bien comprendre pourquoi ça ne marche pas avec :
var re=new RegExp(" AppleWebKit/[^ ]++ ");
Probablement parce que, « + » n'étant pas un caractère spécial pour les
chaînes de caractères, « + » est équivalent à « + », et ta chaîne est
donc équivalente à " AppleWebKit/[^ ]++ ".
function isWebkitNightlyBuild(){ return / AppleWebKit/[^ ]++ /.test(navigator.userAgent); }
et là je n'ai pas de message d'erreur, et la détection est correcte :
Safari et Firefox sont à false Webkit à true.
ceci dit j'aimerais bien comprendre pourquoi ça ne marche pas avec :
var re=new RegExp(" AppleWebKit/[^ ]++ ");
Probablement parce que, « + » n'étant pas un caractère spécial pour les chaînes de caractères, « + » est équivalent à « + », et ta chaîne est donc équivalente à " AppleWebKit/[^ ]++ ".
Essaye avec : " AppleWebKit/[^ ]++ "
SAM
SAM wrote:
M'enfin : alert(navigator.userAgent.match(RegExp(/ AppleWebKit/[^ ]++ /))); donne toutes satisfactions
oui, c'est ce que j'ai fini par faire : function isWebkitNightlyBuild(){ return / AppleWebKit/[^ ]++ /.test(navigator.userAgent); }
en effet, et fort des démos de Moz, on n'a même pas besoin de RegExp() : javascript:alert(navigator.userAgent.match(/ AppleWebKit/[^ ]++ /)); comme tu l'as fait en dernier ressort
remarques que Webkit me donne aussi une erreur (moins bien formulée/précisée qu'avec Firefox) dans le premier cas,
dans le second Safari n'est pas géné dans le premier :
il me renvoie "AppleWebKit/419.3" au lieu de "null"
donc cette histoire de "" au lieu de // doit compter dans une RegExp
Olivier ? Pierre ? où êtes-vous ?
-- sm
SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> wrote:
M'enfin :
alert(navigator.userAgent.match(RegExp(/ AppleWebKit/[^ ]++ /)));
donne toutes satisfactions
oui, c'est ce que j'ai fini par faire :
function isWebkitNightlyBuild(){
return / AppleWebKit/[^ ]++ /.test(navigator.userAgent);
}
en effet, et fort des démos de Moz, on n'a même pas besoin de RegExp() :
javascript:alert(navigator.userAgent.match(/ AppleWebKit/[^ ]++ /));
comme tu l'as fait en dernier ressort
remarques que Webkit me donne aussi une erreur (moins bien
formulée/précisée qu'avec Firefox) dans le premier cas,
dans le second Safari n'est pas géné
dans le premier :
M'enfin : alert(navigator.userAgent.match(RegExp(/ AppleWebKit/[^ ]++ /))); donne toutes satisfactions
oui, c'est ce que j'ai fini par faire : function isWebkitNightlyBuild(){ return / AppleWebKit/[^ ]++ /.test(navigator.userAgent); }
en effet, et fort des démos de Moz, on n'a même pas besoin de RegExp() : javascript:alert(navigator.userAgent.match(/ AppleWebKit/[^ ]++ /)); comme tu l'as fait en dernier ressort
remarques que Webkit me donne aussi une erreur (moins bien formulée/précisée qu'avec Firefox) dans le premier cas,
dans le second Safari n'est pas géné dans le premier :
il me renvoie "AppleWebKit/419.3" au lieu de "null"
donc cette histoire de "" au lieu de // doit compter dans une RegExp
Olivier ? Pierre ? où êtes-vous ?
-- sm
SAM
Ha! quand même ! On désespérait là :-)
j'ai remplacé mon test comme suit :
function isWebkitNightlyBuild(){ return / AppleWebKit/[^ ]++ /.test(navigator.userAgent); }
ceci dit j'aimerais bien comprendre pourquoi ça ne marche pas avec :
var re=new RegExp(" AppleWebKit/[^ ]++ ");
Probablement parce que, « + » n'étant pas un caractère spécial pour les chaînes de caractères, « + » est équivalent à « + », et ta chaîne est donc équivalente à " AppleWebKit/[^ ]++ ".
Essaye avec : " AppleWebKit/[^ ]++ "
J'aurais bien proposé ça mais ... ça n'explique pas pourquoi :
/ AppleWebKit/[^ ]++ /
n'a pas besoin de ce +
-- sm
Ha! quand même !
On désespérait là :-)
j'ai remplacé mon test comme suit :
function isWebkitNightlyBuild(){
return / AppleWebKit/[^ ]++ /.test(navigator.userAgent);
}
ceci dit j'aimerais bien comprendre pourquoi ça ne marche pas avec :
var re=new RegExp(" AppleWebKit/[^ ]++ ");
Probablement parce que, « + » n'étant pas un caractère spécial pour les
chaînes de caractères, « + » est équivalent à « + », et ta chaîne est
donc équivalente à " AppleWebKit/[^ ]++ ".
Essaye avec : " AppleWebKit/[^ ]+\+ "
J'aurais bien proposé ça mais ... ça n'explique pas pourquoi :
function isWebkitNightlyBuild(){ return / AppleWebKit/[^ ]++ /.test(navigator.userAgent); }
ceci dit j'aimerais bien comprendre pourquoi ça ne marche pas avec :
var re=new RegExp(" AppleWebKit/[^ ]++ ");
Probablement parce que, « + » n'étant pas un caractère spécial pour les chaînes de caractères, « + » est équivalent à « + », et ta chaîne est donc équivalente à " AppleWebKit/[^ ]++ ".
Essaye avec : " AppleWebKit/[^ ]++ "
J'aurais bien proposé ça mais ... ça n'explique pas pourquoi :