Accueil > > > VÉRIFIER UN PALINDROME AVEC DES MANIPULATIONS DE CHAINE DE CARACTÈRES
VÉRIFIER UN PALINDROME AVEC DES MANIPULATIONS DE CHAINE DE CARACTÈRES
Information sur la source
Description
Mot code en gros sert à vérifier si votre chaine de caractères est un palindrome. J'ai réussi à faire mon code de façon à ce que l'on puisse ajouter un point, des majuscules ,les accents et des espaces sans modifier le résultat finale. La seule chose que ça ne vérife pas c'est si le mot existe.
Source
- <HTML>
- <HEAD>
- <TITLE>Palindrome </TITLE>
- <SCRIPT language="javascript">
- function vérifiéPhrase(phrase)
- {
- phrases = new String(phrase) // Initie le string
- phrases = phrases.toLowerCase() // Met tout les caractères en minuscule
- var len = phrases.length; // Initie le longeur du string ( seulement pour la boucle qui suit )
- //for (i=0;i<len;i++) // Enlève les caractères inutiles et remplace les accents
- caractere_spec = new Array (" ",".",",","!","?","-","_","\\","'","(",")","$","&","%","*")
- lettre_a = new Array("à","â","ä")
- lettre_e = new Array("è","é","ê","ë")
- lettre_i = new Array("ì","î","ï")
- lettre_o = new Array("ò","ô","ö")
- lettre_u = new Array("ù","û","ü")
- for (i=0;i<caractere_spec.length;i++)
- {
- for (x=0;x<len;x++)
- {
- phrases = phrases.replace(caractere_spec[i],"")
- if (phrases.indexOf(caractere_spec[i],0) < 0) break;
- }
- }
- for (i=0;i<lettre_a.length;i++)
- {
- for (x=0;x<len;x++)
- {
- phrases = phrases.replace(lettre_a[i],"a")
- if (phrases.indexOf(lettre_a[i],0) < 0) break;
- }
- }
- for (i=0;i<lettre_e.length;i++)
- {
- for (x=0;x<len;x++)
- {
- phrases = phrases.replace(lettre_e[i],"e")
- if (phrases.indexOf(lettre_e[i],0) < 0) break;
- }
- }
- for (i=0;i<lettre_i.length;i++)
- {
- for (x=0;x<len;x++)
- {
- phrases = phrases.replace(lettre_i[i],"i")
- if (phrases.indexOf(lettre_i[i],0) < 0) break;
- }
- }
- for (i=0;i<lettre_o.length;i++)
- {
- for (x=0;x<len;x++)
- {
- phrases = phrases.replace(lettre_o[i],"o")
- if (phrases.indexOf(lettre_o[i],0) < 0) break;
- }
- for (x=0;x<len;x++)
- {
- phrases = phrases.replace(lettre_u[i],"u")
- if (phrases.indexOf(lettre_u[i],0) < 0) break;
- }
- }
- for (x=0;x<len;x++)
- {
- phrases = phrases.replace("ÿ","y")
- phrases = phrases.replace("ç","c")
- if (phrases.indexOf("ÿ",0) < 0 && phrases.indexOf("ç",0) < 0) break;
- }
- len = phrases.length; // Initie la bonne valeur de la longeur ,parce que l'on a enlevé les espaces les points, ...
- var num_comparer;
- var lettre_comparer;
- var résultat = "correct"
- var position = new Array(); // Fait un un table qui contient tous les caractères du mot ou de la phrase
- for (i=0;i<len;i++)
- {
- position[i] = phrases.charAt(i)
- }
- for (i=len;i>0;i--)
- {
- num_comparer = len - i
- lettre_comparer = position[num_comparer]
- if (lettre_comparer != phrases.charAt(i-1)) // Compare chaque caractères à sa lettre symétrique ( de l'autre côté )
- {
- résultat = "mauvais" // Si elle n'est pas égale elle retourne que ce n'est pas un pallindrome
- }
- }
- if (résultat == "correct") // Si à aucun endroit les lettres n'on pas été égale il affiche que vous avez trouvé un palidrome.
- {
- alert("Vous avez réussi.\nC'était un palyndrome.")
- }
- else //Sinon que vous n'avez pas trouvé un palindrome
- {
- alert("Meilleur chance la prochaine fois.\nCe n'était pas un palyndrome.")
- }
- }
- </SCRIPT>
- </HEAD>
- <BODY>
- <FORM name="form">
- Votre phrase : <INPUT type="text" name="phrase" value="La marié ira mal.">
- <INPUT type="button" value="Vérifié" onclick="vérifiéPhrase(document.form.phrase.value)">
- <INPUT type="hidden" name="temp">
- </FORM>
- </BODY>
- </HTML>
<HTML>
<HEAD>
<TITLE>Palindrome </TITLE>
<SCRIPT language="javascript">
function vérifiéPhrase(phrase)
{
phrases = new String(phrase) // Initie le string
phrases = phrases.toLowerCase() // Met tout les caractères en minuscule
var len = phrases.length; // Initie le longeur du string ( seulement pour la boucle qui suit )
//for (i=0;i<len;i++) // Enlève les caractères inutiles et remplace les accents
caractere_spec = new Array (" ",".",",","!","?","-","_","\\","'","(",")","$","&","%","*")
lettre_a = new Array("à","â","ä")
lettre_e = new Array("è","é","ê","ë")
lettre_i = new Array("ì","î","ï")
lettre_o = new Array("ò","ô","ö")
lettre_u = new Array("ù","û","ü")
for (i=0;i<caractere_spec.length;i++)
{
for (x=0;x<len;x++)
{
phrases = phrases.replace(caractere_spec[i],"")
if (phrases.indexOf(caractere_spec[i],0) < 0) break;
}
}
for (i=0;i<lettre_a.length;i++)
{
for (x=0;x<len;x++)
{
phrases = phrases.replace(lettre_a[i],"a")
if (phrases.indexOf(lettre_a[i],0) < 0) break;
}
}
for (i=0;i<lettre_e.length;i++)
{
for (x=0;x<len;x++)
{
phrases = phrases.replace(lettre_e[i],"e")
if (phrases.indexOf(lettre_e[i],0) < 0) break;
}
}
for (i=0;i<lettre_i.length;i++)
{
for (x=0;x<len;x++)
{
phrases = phrases.replace(lettre_i[i],"i")
if (phrases.indexOf(lettre_i[i],0) < 0) break;
}
}
for (i=0;i<lettre_o.length;i++)
{
for (x=0;x<len;x++)
{
phrases = phrases.replace(lettre_o[i],"o")
if (phrases.indexOf(lettre_o[i],0) < 0) break;
}
for (x=0;x<len;x++)
{
phrases = phrases.replace(lettre_u[i],"u")
if (phrases.indexOf(lettre_u[i],0) < 0) break;
}
}
for (x=0;x<len;x++)
{
phrases = phrases.replace("ÿ","y")
phrases = phrases.replace("ç","c")
if (phrases.indexOf("ÿ",0) < 0 && phrases.indexOf("ç",0) < 0) break;
}
len = phrases.length; // Initie la bonne valeur de la longeur ,parce que l'on a enlevé les espaces les points, ...
var num_comparer;
var lettre_comparer;
var résultat = "correct"
var position = new Array(); // Fait un un table qui contient tous les caractères du mot ou de la phrase
for (i=0;i<len;i++)
{
position[i] = phrases.charAt(i)
}
for (i=len;i>0;i--)
{
num_comparer = len - i
lettre_comparer = position[num_comparer]
if (lettre_comparer != phrases.charAt(i-1)) // Compare chaque caractères à sa lettre symétrique ( de l'autre côté )
{
résultat = "mauvais" // Si elle n'est pas égale elle retourne que ce n'est pas un pallindrome
}
}
if (résultat == "correct") // Si à aucun endroit les lettres n'on pas été égale il affiche que vous avez trouvé un palidrome.
{
alert("Vous avez réussi.\nC'était un palyndrome.")
}
else //Sinon que vous n'avez pas trouvé un palindrome
{
alert("Meilleur chance la prochaine fois.\nCe n'était pas un palyndrome.")
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM name="form">
Votre phrase : <INPUT type="text" name="phrase" value="La marié ira mal.">
<INPUT type="button" value="Vérifié" onclick="vérifiéPhrase(document.form.phrase.value)">
<INPUT type="hidden" name="temp">
</FORM>
</BODY>
</HTML>
Conclusion
J'ai essayer d'optimiser le code le plus possible et de la rendre plus souple (pour les espaces et autre). Si vous avez des suggestions n'hésitez à me les envoyer.
Historique
- 25 mars 2005 22:17:36 :
- J'ai optimisé la boucle avec le remplacement de caractère, il est plus optimiser et plus rapide.
- 28 novembre 2005 01:01:18 :
- Ajout de mots clés
- 28 novembre 2005 01:02:21 :
- -
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Urlencode [ par Clem ]
Existe il en javascript une fonction comme urlencode en php ?Sinon est il possible d'en faire une en traduisant la fonction vb : Function ReplaceStrin
Pbl : Convertir un objet en string ? la solution ? [ par Dexterin ]
Bonjour,Je cherche depuis un moment maintenant et je bloque un peu...Je désire extraire une variable cible contenant exactement :<input type="hidde
recherche string dans text area [ par kalib ]
voici la situation :je dispose d'une drop box ( input type select)<select name="original"> <option value="A"> C</option> <option
integrer une page html dans variable string [ par power ]
voila , je cherche a lire une page html, en fin son code source(a partir de son url) et de l integrer dans une variable de type string afin de pouvoir
appel fonction [ par cosminutza ]
Salut! Je voudrais transmettre a la partie script (javascript) d'une image SVG contenue dans une page web, une string contenant le nom de la fonction
mailto et saut de ligne ?? [ par birdyz ]
Bonjour à tousJe débute en JS, et j'ai un petit soucis. j'utilise mailto dans une de mes fonctions, et je voudrais que le corps du message soit sur pl
les string [ par fernand22fr ]
bonjours ,je souhaiterais savoir si il est possible d acceder a un caractere particulier d une chaine de caractere.Par exemple je veux afficher dans u
String vide [ par daeron ]
J'ai un problème avec javascript.Je veux tester si mon string MyString est vide.J'ai teste : if (MyString == null) ou if (!MyString) ou if(MyString ==
incrémenter une string [ par armoun78 ]
bonjour,je vous explique mon probleme :Je récupère la valeur d'un champs d'un formulaire (donc une string) mais je veux m'en servir comme un entier (j
Interpréter balises HTML dans String ? [ par floorfi ]
Bonsoir !Voilà, dans une String, j'ai des données texte et des balises html qui sont affectées.Par exemple, j'ai une String dont le contenu est "toto1
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|