Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2011, 17h26   #1
Candidat au titre de Membre du Club
 
Vincent
Étudiant
Inscription : mars 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Vincent

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2010
Messages : 43
Points : 13
Points : 13
Par défaut Remplacer toute une partie d'un texte [match() ?]

Bonjour à tous,

Pour les besoins de mon application, je dois remplir un textarea avec les valeurs d'un tableau.
Du coup, j'y arrive bien mais, si j'update mon tableau, je concatène le texte de mon textarea.
Je voudrais remplacer le contenu, sauf que... il y a du contenu fixe dans le textarea, donc je ne peux pas tout effacer et tout remettre.

J'ai 3 zones séparées par des titres fixes : [zone1], [zone2], [zone3]

Et je ne voudrais modifier uniquement la zone2, donc le contenu entre [zone2] et [zone3].
Comment puis-je faire ? En utilisant la fonction match() ? Mais moi et les expressions régulières ...

Merci pour un coup de pouce !
peephole83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 17h37   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 111
Points : 45 111
pas le match ... utilise simplement replace ...

Code :
alert("[zone1], [zone2], [zone3]".replace(/(\[zone1],\s*)(\[zone2])(,\s*\[zone3])/,"$1 bar $3"))
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2011, 18h01   #3
Candidat au titre de Membre du Club
 
Vincent
Étudiant
Inscription : mars 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Vincent

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2010
Messages : 43
Points : 13
Points : 13
Merci, on s'en approche pas mal !
En fait, pour tout simplifier, je voudrais supprimer tout le texte après [zone2]...

Un truc du genre ? : value.replace(/\[zone2]*\/g,'')

Mais bon ... Je tâtonne mais j'ai vraiment du mal. Je m'en approche .. ?


Merci !
peephole83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 08h41   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 111
Points : 45 111
Code :
alert("[zone1], [zone2], [zone3]".replace(/(\[zone1],\s*)(\[zone2])(.*)/,"$1 bar3"))
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 10h14   #5
Candidat au titre de Membre du Club
 
Vincent
Étudiant
Inscription : mars 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Vincent

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2010
Messages : 43
Points : 13
Points : 13
J'ai testé depuis le plugin Firefox Testeur d'expressions régulières, mais aucun résultat concluant ...
Tes 2 Regexp sélectionne tout à priori ?

Voici par exemple ce qui se trouve dans mon textarea :
Citation:
[security]
depthLimit=10
depthStabilityLimit=50
depthStabilityDuration=10
depthStabilityError=20

[path]
g0=wp(x4163.5556; y348.0833), p1
g1=wp(x4226.1389; y368.5), p1
g2=wp(x4257.8056; y330.25), p1
g3=wp(x4302.25; y336.2222), p1
Et seul ce qui est après [path] doit être modifié.
Ceci s'en rapproche :
Mais le souci vient peut être du fait que c'est sur plusieurs lignes ?
Je vais me diriger vers une fonction et indexOf() je pense ...
A moins que quelqu'un ait une autre idée ?

En tout cas merci pour ton temps !
peephole83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 10h57   #6
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 111
Points : 45 111
Heu

Tu as testé mon exemple ?????

il fait un alert [zone1],bar

ce qui me semble être le résultat attendu non ??

conservation de zon1 remplacement de zone2 et suppression de zone3
???

Explique mieux ton besoin
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 11h33   #7
Candidat au titre de Membre du Club
 
Vincent
Étudiant
Inscription : mars 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Vincent

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2010
Messages : 43
Points : 13
Points : 13
Et bien je n'ai pas réussi à le faire fonctionner alors ...
Sur le plugin Firefox je n'ai pas eu de résultat, et sur mon code non plus.

En faisait :
Code :
1
2
 
alert($('#tfile').val().replace(/(\[security],\s*)(\[path])(.*)/,"$1 bar3"));
Avec $('#tfile').val() le texte que j'ai précédemment mis. En clair, je veux tout supprimer après [path] dans mon textarea lorsque je clique sur un bouton.
Je supprime tout après [path], je récupère le contenu, et je concatène avec mes nouvelles valeurs.

Voici dans l'idée !
peephole83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 11h44   #8
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 111
Points : 45 111
tu peux donner un exemple de texte complet a traiter genre avant / après ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type='text/javascript'>
$(function(){ 
$("#foo").click( function(){
alert( $('#tfile').val().replace(/(\[security],\s*)(\[path])(.*)/,"$1 bar3"));
 
})
 
})
</script>
</head>
<body>
<textarea id="tfile" value="[security], [path] wvdfvd qsdfv ">[security], [path] wvdfvd qsdfv </textarea>
<input type="button" id="foo" value="go"/>
</body>
</html>
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 13h32   #9
Candidat au titre de Membre du Club
 
Vincent
Étudiant
Inscription : mars 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Vincent

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2010
Messages : 43
Points : 13
Points : 13
Yep voici :
Citation:
[security]
depthLimit=10
depthStabilityLimit=50
depthStabilityDuration=10
depthStabilityError=20

[path]
g0=wp(x4163.5556; y348.0833), p1
g1=wp(x4226.1389; y368.5), p1
g2=wp(x4257.8056; y330.25), p1
g3=wp(x4302.25; y336.2222), p1
Le souci, c'est que c'est sur plusieurs lignes ... Cela vient peut-être de là ?
Je confirme, ton exemple fonctionne bien ! le module de Firefox par contre ne le faisait pas marcher, mais j'ai testé en ligne et c'est ok.
Mais pas avec ma phrase
Ni même si je la mets sur 1 ligne...

EDIT : j'ai du mal m'expliquer, mais ceci me convient :
Code :
1
2
 
('#tfile4').val().replace(/(\[security](.*))(\[path])(.*)/
Mais le fait que ce soit sur plusieurs lignes cause des soucis ... Une solution pour les regExp sur plusieurs plusieurs lignes ?
peephole83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 13h52   #10
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 019
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 019
Points : 45 111
Points : 45 111
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script type='text/javascript'>
$(function(){ 
$("#foo").click( function(){
alert( $('#tfile').val().replace(/(\[security]\s*([^\n]*\n)+\[path])\s*([^\n]*\n?)+/,"$1 bar3"));
 
})
 
})
</script>
</head>
<body>
<textarea id="tfile" value="">[security]
depthLimit=10
depthStabilityLimit=50
depthStabilityDuration=10
depthStabilityError=20
 
[path]
g0=wp(x4163.5556; y348.0833), p1
g1=wp(x4226.1389; y368.5), p1
g2=wp(x4257.8056; y330.25), p1
g3=wp(x4302.25; y336.2222), p1 </textarea>
<input type="button" id="foo" value="go"/>
</body>
</html>
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 14h04   #11
Candidat au titre de Membre du Club
 
Vincent
Étudiant
Inscription : mars 2010
Messages : 43
Détails du profil
Informations personnelles :
Nom : Vincent

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mars 2010
Messages : 43
Points : 13
Points : 13
Woaw ... Un super grand merci !

Quelle efficacité ce forum ! Merci encore.
peephole83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h01.


 
 
 
 
Partenaires

Hébergement Web