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 14/09/2011, 11h06   #1
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 38
Points : 10
Points : 10
Par défaut Remplacement de caractère dans un champ (Formulaire)

Bonjour,

Je souhaiterais un script permettant de remplacer un caractère (à savoir [ ' ], [ ( ] et [ ) ] autrement dit : l'apostrophe et les parenthèses.

Les caractères ci-dessus pose problème dans un formulaire, et sous Internet Explorer plus particulièrement, et ce malgré le bon Charset (je précise que les accents é / à / ù / passe parfaitement)

L'idée serait de mettre un place un script qui remplacerait les caractères en question par un espace par exemple où peut être un code ISO (si cela est possible).

Concernant le formulaire (il est simple) car c'est un moteur de recherche, et donc il n'y a qu'un seul champ.

Voici le moteur de recherche : ozzi.fr (à tester sous Internet Explorer)

Je vous remercie par avance pour votre précieuse aide...
hoodvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/09/2011, 18h38   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Bonjour,
as tu regardé du coté de la méthode replace
Code :
1
2
var chaine = "(entre parenthese)";
alert( chaine.replace(')', '?'));
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 02h08   #3
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 38
Points : 10
Points : 10
Merci pour ton aide NoSmoking

Et bien oui, j'ai cherché pas mal sur cette piste, je pense que la solution ce trouve par là, néanmoins je n'est pas encore trouvé le code exacte malheureusement.
hoodvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 21h58   #4
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Citation:
néanmoins je n'est pas encore trouvé le code exacte malheureusement.
que ne trouves tu pas ??

- récupération de la chaine d'un champ de saisie, INPUT type="text"
Code :
var chaine = document.getElementById('id_de_l_input').value;
- remplacement des caractères
Code :
chaine = chaine.replace(/[\(\)']/g, '_');
exemple :
Code :
1
2
3
4
var chaine = "l'été sera chaud(sic).";
// remplacement des (, ) et ' par un _
chaine = chaine.replace(/[\(\)']/g, '_');
alert( chaine);
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 22h05   #5
Membre régulier
 
Inscription : juillet 2004
Messages : 92
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 92
Points : 75
Points : 75
Pour focer l'encodage dans javascript il suffit d'ajouter l'attribut charset a ta balise script.

Code :
<script type="text/javascript" charset="UTF-8"></script>
Si tu utilise de multiple langage il est indispensable.
De plus si tu fait du japonnais chinois, il te faudra installer les extensions et les langues soit au niveau du navigateur ou dans ton système d'exploitation pour bien les afficher.
headmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 22h57   #6
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 38
Points : 10
Points : 10
Merci pour tous, cela m'apprend beaucoup de choses, car le javascript je ne maitrise pas du tous, pour preuve je n'ai pas réussi à mettre en place vos conseils (et je m'en excuse).

Voici ce que j'ai fait, en vain...

j'ai placé dans la partie <head> le code suivant :
(à savoir que l'ID de l'input ce nomme " ozzi_rech ")

Code :
1
2
3
4
5
<script type="text/javascript">
var chaine = document.getElementById('ozzi_rech').value;
chaine = chaine.replace(/[\(\)']/g, '_');
alert( chaine);
</script>
Merci pour votre patience
hoodvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 23h09   #7
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
il te faut mettre le code avant soumission, c'est à dire dans ta fonction valider
Code :
1
2
3
4
5
6
7
8
9
10
function valider(f){
  var sTmp  = f.q.value;
  f.q.value = sTmp.replace(/[\(\)']/g, '_');
  if (f.q.value == "") {
    return false;
  }
  else {
    return true;
  }
}
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 00h13   #8
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 38
Points : 10
Points : 10
Franchement super ton code NoSmoking, il fonctionne parfaitement, merci beaucoup pour ce grand bond en avant.

Sauf que le script pose des problèmes dans le fonctionnement du moteur de recherche.

J'ai une petite demande, es-ce qu'il est possible de faire le même type de script qui remplacerai :

' par & #39;
( par & #40;
) par & #41;

Mais sans que l'on se retrouve avec la forme ISO affiché dans le champ de résultat (de la page suivante).

Exemple : "l'été sera chaud" et non "l& #39;été sera chaud"

Merci encore
hoodvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 00h50   #9
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
je pense qu'en fait il est temps que tu passes coté seveur pour faire le traitement de ta chaine avec des fonction PHP comme
  • preg_replace
  • htmlentities
  • html_entity_decode
  • htmlspecialchars
par exemple, cela ne sera que mieux...
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 10h02   #10
Candidat au titre de Membre du Club
 
Inscription : août 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 38
Points : 10
Points : 10
Oui, en effet,

Je vais poster tous cela sur le forum en question.

Merci beaucoup NoSmoking
hoodvy 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 01h44.


 
 
 
 
Partenaires

Hébergement Web