begin process at 2012 05 29 18:38:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Problème de compatibilité

 > 

Problème avec REGEX sous IE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec REGEX sous IE

jeudi 21 septembre 2006 à 22:44:40 | Problème avec REGEX sous IE

death83

Salut a tous,

je suis entrain de faire un petit script qui fonctionne bien sauf sur IE.

J'ai une fonction qui permet la génération automatique d'un texte à partir de 2 input.

Un petit exemple concret pour comprendre:


input 1: Fonction
input 2: Nom


J'obtient un code généré:


Fonction : Nom


jusque la ca va

si on entre ensuite


input 1: Fonction2
input 2: Nom2


j'obtient alors:


Fonction : Nom
Fonction2 : Nom2


Le problème viens lorsque la meme fonction reviens une seconde fois par exemple:


input 1: Fonction
input 2: Nom3


Sous FF, Opéra et Netscape j'obtient: (ce que je veut)


Fonction : Nom / Nom3
Fonction2: Nom2


mais sous IE j'ai ca:


Fonction : Nom
/ Nom3
Fonction2: Nom2


Voilà le code concerné:


function ajouteintextarea(idtextarea,element1,element2)
{
    //On récupert le text du textarea
    var text=document.getElementById(idtextarea).value;
    //On ahoute le nouveau perso
    var fonction=document.getElementById(element1).value;
    var perso=document.getElementById(element2).value;
   
    reg=new RegExp(fonction+" :","gi"); //Pour mozilla firefox
    test=text.match(reg);
    alert(test);
    if(test!=null)
    {
        alert('pwet');
        reg=new RegExp(test+" (.*)","gi");
        var textainser=text.replace(reg,test+" $1 / "+perso);
        document.getElementById(idtextarea).value=textainser;
    }
    else
    {
        if(text=='')
        {       
            var textainser=fonction+" : "+perso;
            document.getElementById(idtextarea).value=textainser;
        }
        else
        {
            var textainser=text+"\n"+fonction+" : "+perso;
            document.getElementById(idtextarea).value=textainser;
        }
    }
   
}


ou element1 correspond a input 1 et element 2 a input2.

Savez vous comment je pourrais corriger ce problème sous IE? Apparement c'est à cause du \n, mais si je l'enlève ca ne marche plus.
vendredi 22 septembre 2006 à 15:26:49 | Re : Problème avec REGEX sous IE

PetoleTeam

Membre Club


B onjour...

Je réponds indirectement à ton problème en te donnant le lien d'une source déposée il y a peu sur ce site
CURSEUR dans TEXTAREA
Je sais elle est de moi mais bon, il n'empêche que tu devrais y trouver ta vie
;0)
vendredi 22 septembre 2006 à 16:22:11 | Re : Problème avec REGEX sous IE

death83

Merci pour ta réponse, mais je trouve que c'est un peu l'artillerie lourde toute ces fonctions pour juste un petit saut à la ligne non voulu sous IE.

Tu crois que c'est vraiment du à un saut du curseur? C'est bizarre quand même, il viendrait de la regex?
lundi 25 septembre 2006 à 12:32:47 | Re : Problème avec REGEX sous IE

PetoleTeam

Membre Club


B
onjour...

les RegExp ne sont nullement en cause mais plutôt la façon différente qu'on les navigateurs de gérer les retours chariot dans les TEXTAREA...

donc après essais et tests sur FireFox et IE  ce qui suit devrait te convenir...

function Add(idtextarea,element1,element2){
  var szTxt = "";
  var Obj = document.getElementById(idtextarea);
  //On récup. le text du textarea
  var szTxt = Obj.value;
  //On ajoute le nouveau perso
  var fonction=document.getElementById(element1).value;
  var perso=document.getElementById(element2).value;

  reg = new RegExp( fonction+" :","gi");
  Test = szTxt.match( reg);
  //-- Existe Déjà --//
  if( Test!=null){
    var Pos;
    //-- Récup chaque Ligne --//
    var szTmp = new Array();
    szTmp = szTxt.split('\n');
    //-- Formattage des Lignes --//
    for( i =0 ; i < szTmp.length; i++){
      //-- Suppression des retour chariot --//
      Pos = szTmp[i].indexOf('\r');
      if( Pos > -1)
        szTmp[i]=szTmp[i].substring( 0, Pos);
      //-- Test Si ligne concernée --//
      if( szTmp[i].match( reg) !=null)
        szTmp[i] += " / "+perso; // On ajoute
    }
    //-- Rétabli le texte en sortie --//
    szTxt = "";
    for( i =0 ; i < szTmp.length-1; i++)
      szTxt += szTmp[i] +'\n';
    //-- Dernière sans saut de ligne --//
    szTxt += szTmp[i];
  }
  else{
    if( szTxt =='')
      szTxt = fonction+" : "+perso;
    else
     szTxt += "\n" + fonction+" : "+perso;
  }
  //-- Ecriture dans Textarea --//
  Obj.value = szTxt;
}

Voila je pense qu'il y à moyen de faire plus simple avec les RegExp en remplaçant tous les retours chariot d'une traite dans le texte récupéré et en appliquant ton code Mais je te laisse joué...

;0)


lundi 25 septembre 2006 à 12:57:19 | Re : Problème avec REGEX sous IE

PetoleTeam

Membre Club
Réponse acceptée !


C'est vraiment plus simple avec les RegExp

Tu ajoutes...

  var reg = new RegExp("[\r]","gi");
  text =text.replace( regexp, '');
Avant...
  reg=new RegExp(fonction+" :","gi"); //Pour mozilla firefox
  test=text.match(reg);
dans ta source et cela doit être bon...

;0)

lundi 25 septembre 2006 à 15:53:55 | Re : Problème avec REGEX sous IE

death83



Merci,

je vais essayer ca se soir et je vous tient au courant ;).

lundi 25 septembre 2006 à 22:58:54 | Re : Problème avec REGEX sous IE

death83

C'est bon ca marche ^^.

Merci beaucoup, et oui je suis d'accord avec Petoleteam, c'est beaucoup plus simple avec les RegEx.

Encore merci ^^.


Cette discussion est classée dans : fonction, text, var, document, getelementbyid


Répondre à ce message

Sujets en rapport avec ce message

Lancer une fonction après la fin d'exécution d'une autre fonction [ par bm3w325i ] Bonjour,Actuellement j'ai un input qui lors d'un Onclick se rempli par des coordonnées GoogleMaps, un fois rempli je récupère les données pour les aff fonction avec en paramétre getElementById [ par kyoku59 ] Bonjour. Je flanche sur un problème surement évident mais impossible de trouver. Voilà j'ai une fonction avec en paramétre des éléments id de mon cod Aide a la création d'une fonction [ par kyoku59 ] Bonjour. Voila j'ai cette fonction : [code=js] function heures() { var tabHeure= new Array("01","02","03", "04", "05","06","07", "08" Cet objet ne gere pas cette methode ou cette propriété [ par timalin ] Bonjour, le code ci-dessous est tiré d'un code complet mais comporte une erreur quand je le lance sous Ulimate 7 mais marche bizarement sous XP pro.Ca Bouton image qui appelle une fonction js [ par philreut ] Bonjour, j'ai un formulaire dynamique créé par une fonction js dans lequel je souhaite intégrer une possibilité de supprimer des entrées existantes. unterminated string literal [ par kangun ] Bonjour. je me tourne vers vous suite à un problème apparut sur un java script. en effet, je souhaite afficher une bulle au dessus d'une image et chan Aide pour faire une boucle [ par nel_sim ] Bonjour ! Je débute en Javascript, c'est pour cela que j'ai besoin de vous ! En fait j'aimerai faire une boucle avec for ou while, mais je ne sais pa remettre des input radio à vide [ par joujma5 ] bonjour j'ai un bout de code qui me gène je veux bien remettre les input radio vides(!=checked) on rafraîchissant la page web.voici le code: funct Submit avec une image en Ajax : Envoi de formulaire [ par romi36 ] Bonjour a tous, Je suis en train de dévelloper un site, et je me suis mis a l'ajax, je trouve personnellement cela passionant. J'ai par contre une e [déplacé Bar -> JS] tableaux [ par nabilwael ] Bonjour,j'ai ce fichier js :var i = 0;    function create_champ(){    if(i        document.getElementById('champs').innerHTML += " Name</label&gt


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,279 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales