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 13/03/2011, 14h25   #1
Futur Membre du Club
 
Inscription : mai 2007
Messages : 82
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mai 2007
Messages : 82
Points : 19
Points : 19
Par défaut enlever les tag html

Bonjour,

j'ai une fonction qui compte les caractères.
si je rajoute cette ligne
Code :
1
2
 
var txt=txt.replace(#<\/?(span|strong|em|u|).+?>#gi, '');
elle plante!
Code la fonction.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
var max=150;
function compter(f) {
	var txt=f.presentation_galerie.value;
//var txt=txt.replace(#<\/?(span|strong|em|u|).+?>#gi, '');
	var nb=txt.length;
	if (nb>max) {
                 nb=nb-1;
		alert("Pas plus de "+max+" caractères dans ce champ");
 
		f.presentation_galerie.value=txt.substring(0,max);
 
	}
	f.nbcar.value=max-nb;
}
Merci pour votre aide
anca2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 16h09   #2
Membre régulier
 
Développeur Web
Inscription : décembre 2006
Messages : 99
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 99
Points : 78
Points : 78
Envoyer un message via MSN à hakurou
Salut,

Tu dois faire du php toi nan? A cause des # dans ton expreg :p

Remplace les par des slash et ça se passera mieux.
hakurou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 17h59   #3
Futur Membre du Club
 
Inscription : mai 2007
Messages : 82
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mai 2007
Messages : 82
Points : 19
Points : 19
Merci pour ta réponse
Oui plutôt php.
j'ai corrigé.

Mais il compte le tag et tout ce qui se trouve dans le tag .
Cela veut dire que si le texte est :
<strong>texte</strong> au lieu que de compter le mot texte il compte aussi <strong> et </strong> cela veux dire qu'il reste toujours 150 caractères!
Cela se produit que pour les tags déclarés dans la fonction replace(/<\/?(span|strong|em|u|).+?>/gi, '')

Y a t-il une solution
anca2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 18h25   #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 007
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 007
Points : 45 091
Points : 45 091
on peut avoir un exemple de texte à épurer ?
__________________
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 13/03/2011, 19h11   #5
Futur Membre du Club
 
Inscription : mai 2007
Messages : 82
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mai 2007
Messages : 82
Points : 19
Points : 19
J'utilise whizzywig

J'arrive en 2 passes à compter le nombre de caractères mais il compte aussi les tags.
Si j'arrive à enlever les tags …..

Si dessous les tags les plus courant

Code :
1
2
3
4
5
6
7
<p>Texte </p>
 
<strong>Texte</strong> 
 
<em>Texte</em> 
 
<u>Texte</u>

Si l'on pouvait enlever l'espace insécable &nbsp; cela serait bien

Et le tag couleur aussi
Code :
1
2
 
<span style="color: #ff0000">Texte</span> </p>
en fait, tout entre < et >
anca2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 20h59   #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 007
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 007
Points : 45 091
Points : 45 091
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(){
var chaine=document.getElementById('bar').innerHTML
alert('avant supression des tags '+chaine.length)
var texte= chaine.replace(/<\/?(p|em|strong|u|span)[^>]*>/gi,'')
alert('avant supression des tags '+texte.length)
}
</script>
</head>
 
<body>
<div id="bar">
<p>Texte </p>
 
<strong>Texte</strong>
 
<em>Texte</em>
 
<u>Texte</u> 
<span style="color: #ff0000">Texte</span>
</div>
<input type='button' onclick='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 13/03/2011, 22h58   #7
Futur Membre du Club
 
Inscription : mai 2007
Messages : 82
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mai 2007
Messages : 82
Points : 19
Points : 19
Merci, cela fonctionne, pas parfaitement mais suffisamment pour compter.
Si l'on peut enlever l'espace insécable &nbsp; cela améliorerait le comptage.

Dans tout les cas merci.
anca2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 23h57   #8
Membre éclairé
 
Avatar de kimjoa
 
Inscription : février 2009
Messages : 318
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : février 2009
Messages : 318
Points : 360
Points : 360
tu peux aussi utiliser la fonction innerText, ou textContent pour IE, qui sont faite pour ça. Pour les &nbsp; il te faut une expression régulière

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
26
27
28
<script type ='text/javascript'>
function foo(){
    var el = document.getElementById('bar'),
    length = el[el.innerText ? 'innerText' : 'textContent']
        .replace(/^\s*|\s*$/g, '')
        .replace(/\s{2,}/g, '').length;
    alert(length);
}
</script>
</head>
 
<body>
<div id="bar">
 
<p>Texte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fdfdf &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rfrf</p>
    <div>
        <strong>Texte   </strong>
 
        <em>Texte&nbsp;</em>
 
        <u>Texte</u>
        <span style="color: #ff0000">Texte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
    </div>
</div>
<input type='button' onclick='foo()' value="go" />
</body>
 
</html>
kimjoa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 08h52   #9
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 007
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 007
Points : 45 091
Points : 45 091
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(){
var chaine=document.getElementById('bar').innerHTML
alert('avant supression des tags '+chaine.length)
var texte= chaine.replace(/(<\/?(p|em|strong|u|span)[^>]*>)|(\s+)|(&nbsp;)*/gi,'')
alert('avant supression des tags '+texte.length)
}
</script>
</head>
 
<body>
<div id="bar">
<p>Texte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fdfdf &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rfrf</p>
    <div>
        <strong>Texte   </strong>
 
        <em>Texte&nbsp;</em>
 
        <u>Texte</u>
        <span style="color: #ff0000">Texte&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
    </div>
</div>
 
<input type='button' onclick='foo()' value="go" />
</body>
__________________
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 14/03/2011, 09h43   #10
Membre Expert
 
Avatar de Loceka
 
Tlouye Ci
Inscription : mars 2004
Messages : 1 450
Détails du profil
Informations personnelles :
Nom : Tlouye Ci

Informations forums :
Inscription : mars 2004
Messages : 1 450
Points : 2 149
Points : 2 149
Tu as un "ou" en trop :

Citation:
Envoyé par anca2 Voir le message
replace(/<\/?(span|strong|em|u|).+?>/gi, '')
Loceka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 22h09   #11
Futur Membre du Club
 
Inscription : mai 2007
Messages : 82
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mai 2007
Messages : 82
Points : 19
Points : 19
Bonsoir,

Merci à tous, je n'ai que l'embarras du choix pour les réponses qui par ailleurs sont toutes pertinentes.

L'affaire est résolue.
anca2 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 19h47.


 
 
 
 
Partenaires

Hébergement Web