javascript expression régulière

3 participants

Voir le sujet précédent Voir le sujet suivant Aller en bas

Résolu javascript expression régulière

Message par stefou Dim 11 Mai 2014 - 11:35

Bonjour,
J'ai beau tester, je n'arrive pas à construire une expression régulière  Shocked 
Le but étant de récupérer un seul caractère du pathname.
Si je prends comme exemple "http://adresse du forum/u1"
Je souhaiterais récupérer le "u" pour créer une condition.
le code serait du genre:
Code:
$(function() {
if(document.location.pathname=="^u")
{ code à executer }
;}

ou du genre:
Code:
$(function() {
if/^u/.test(document.location.pathname)
{ code à executer }
;}
Merci.


Dernière édition par stefou le Dim 11 Mai 2014 - 13:47, édité 1 fois
stefou

stefou
*****

Masculin
Messages : 901
Inscrit(e) le : 24/11/2009

http://discussansfrontieres.forumgratuit.fr/forum
stefou a été remercié(e) par l'auteur de ce sujet.

Résolu Re: javascript expression régulière

Message par Maxmax Dim 11 Mai 2014 - 12:59

Essaie avec :
Code:
$(function() {
var url = document.location.pathname;
if(url.substr(url.length-2,1) == "u")
{ code à executer }
;}

Ici la variable url récupère ton lien.
Ensuite on prend le 2ème caractère de ton lien en partant de la fin et on regarde si c'est égal à u.

Cordialement,

Max
avatar

Maxmax
***

Masculin
Messages : 159
Inscrit(e) le : 29/09/2012

http://lanefdesfous.forumgratuit.org/
Maxmax a été remercié(e) par l'auteur de ce sujet.
  • 0

Résolu Re: javascript expression régulière

Message par Ea Dim 11 Mai 2014 - 13:14

Bonjour,


document.location.pathname contient ce qui se trouve après le domaine, pour cette page par exemple :

Code:
http://forum.forumactif.com/t367694-javascript-expression-reguliere

document.location.pathname contiendra /t367694-javascript-expression-reguliere.

Pour récupérer le deuxième caractère d'une chaîne de caractère, il faut faire comme ceci :

Code:
variable[1]

( 1 et pas 2 car on commence à compter à partir de 0 )

donc pour votre exemple, vous pourriez avoir ce code :

Code:
$(function() {

  if(document.location.pathname[1]=="u") {
    /* code à executer */
  }

});

Il y a d'autres façons de faire, par exemple :

Code:
chaine_de_caractere.indexOf(chaine_cherchee)

renvoie la position de la chaîne chechée dans la chaine de caractère ( ou -1 si elle n'est pas trouvée ), donc dans ce cas-ci on pourrait faire pour trouver une chaine qui commence par /u :

Code:
$(function() {

  if(document.location.pathname.indexOf("/u") == 0) {
    /* code à executer */
  }

});

Une autre façon de faire comme mentionné dans le premier post serait d'utiliser une expression régulière, on pourrait par exemple faire :

Code:
$(function() {

  if(/^\/u[1-9]/.test(document.location.pathname)) {
    /* code à executer */
  }

});

La forme /expression_reguliere/.test(chaine de caractère) va renvoyer "true" ( vrai ) ou "false" suivant si la chaîne de caractère correspond à l'expression régulière ou pas.

Et l'expression régulière est : la chaîne commence par le caractère / ( c'est un caractère spécial ( qui est utilisé pour commencer et terminer la chaîne ) donc il faut mettre un \ devant pour indiquer qu'on utilise pas sa signification spéciale ) suivi d'un caractère u, suivi d'au moins un chiffre ( de 1 à 9 ).

Il y a des tas d'autres façons de le faire, mais ce qui importe c'est d'utilisé une des façons possibles et arriver au résultat désiré ^^

Cordialement.
Ea

Ea
Aidactif
Aidactif

Messages : 23583
Inscrit(e) le : 04/04/2008

Ea a été remercié(e) par l'auteur de ce sujet.

Résolu Re: javascript expression régulière

Message par stefou Dim 11 Mai 2014 - 13:31

Bonjour Ea, et merci pour les explications elle sont super bien expliqué,
dans le dernier exemple que vous donnez, si la chaine de caractère ne contient pas de chiffre faut-il remplacer [1-9] par autre chose ?
stefou

stefou
*****

Masculin
Messages : 901
Inscrit(e) le : 24/11/2009

http://discussansfrontieres.forumgratuit.fr/forum
stefou a été remercié(e) par l'auteur de ce sujet.

Résolu Re: javascript expression régulière

Message par stefou Dim 11 Mai 2014 - 13:52

Merci également à Maxmax, je n'avais pas vu ta réponse  Embarassed 
stefou

stefou
*****

Masculin
Messages : 901
Inscrit(e) le : 24/11/2009

http://discussansfrontieres.forumgratuit.fr/forum
stefou a été remercié(e) par l'auteur de ce sujet.

Résolu Re: javascript expression régulière

Message par Maxmax Dim 11 Mai 2014 - 13:53

Il n'y a pas de problème, moi c'est de la bidouille xD
avatar

Maxmax
***

Masculin
Messages : 159
Inscrit(e) le : 29/09/2012

http://lanefdesfous.forumgratuit.org/
Maxmax a été remercié(e) par l'auteur de ce sujet.

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum