-
JAVASCRIPT > les chaines de caractères
Tout en majuscules :
"Toto".toUpperCase()→TOTO
Tout en minuscules :
"Toto".toLowerCase()→totoDernier caractère :
"variable".slice(-1);
Longueur de la chaine :
"variable".length;
str.replace(/[^a-z0-9]/gi,'');
Remplacer les accents :
function enleveAccents(s){ s = s.replace( /[æǽ]/g , "ae" ); s = s.replace( /[œ]/g , "oe" ); s = s.replace( /[ÄÀÁÂÃÄÅ?AAAA]/g , "A" ); s = s.replace( /[àáâãå?aaaaªä]/g , "a" ); s = s.replace( /[ÇCCCC]/g , "C" ); s = s.replace( /[çcccc]/g , "c" ); s = s.replace( /[ÐDÐ]/g , "D" ); s = s.replace( /[ðdd]/g , "d" ); s = s.replace( /[ÈÉÊËEEEEE]/g , "E" ); s = s.replace( /[èéêëeeeee]/g , "e" ); s = s.replace( /[GGGG]/g , "G" ); s = s.replace( /[gggg]/g , "g" ); s = s.replace( /[HH]/g , "H" ); s = s.replace( /[hh]/g , "h" ); s = s.replace( /[ÌÍÎÏIIIIII]/g , "I" ); s = s.replace( /[ìíîïiiiiii]/g , "i" ); s = s.replace( /[J]/g , "J" ); s = s.replace( /[j]/g , "j" ); s = s.replace( /[K]/g , "K" ); s = s.replace( /[k]/g , "k" ); s = s.replace( /[LLL?L]/g , "L" ); s = s.replace( /[lll?l]/g , "l" ); s = s.replace( /[ÑNNN]/g , "N" ); s = s.replace( /[ñnnn?]/g , "n" ); s = s.replace( /[ÖÒÓÔÕOOOOOØ?]/g , "O" ); s = s.replace( /[öòóôõoooooø?]/g , "o" ); s = s.replace( /[RRR]/g , "R" ); s = s.replace( /[rrr]/g , "r" ); s = s.replace( /[SSSŠ]/g , "S" ); s = s.replace( /[sssš?]/g , "s" ); s = s.replace( /[TTT]/g , "T" ); s = s.replace( /[ttt]/g , "t" ); s = s.replace( /[ÜÙÚÛUUUUUUUUUUUU]/g , "U" ); s = s.replace( /[üùúûuuuuuuuuuuuu]/g , "u" ); s = s.replace( /[ÝŸY]/g , "Y" ); s = s.replace( /[ýÿy]/g , "y" ); s = s.replace( /[W]/g , "W" ); s = s.replace( /[w]/g , "w" ); s = s.replace( /[ZZŽ]/g , "Z" ); s = s.replace( /[zzž]/g , "z" ); s = s.replace( /[Æ?]/g , "E" ); s = s.replace( /[ß]/g , "s" ); s = s.replace( /[?]/g , "J" ); s = s.replace( /[?]/g , "j" ); s = s.replace( /[Œ]/g , "E" ); s = s.replace( /[ƒ]/g , "f" ); s = s.replace(/[ÀÁÂÃÄÅ]/g,"A"); s = s.replace(/[àáâãäå]/g,"a"); s = s.replace(/[ÈÉÊË]/g,"E"); s = s.replace(/[éèêë]/g,"e"); s = s.replace(/[ÍÏÎ]/g,"I"); s = s.replace(/[
ìíîï
]/g,"i"); s = s.replace(/[ŐÖÓÒÔ]/g,"O"); s = s.replace(/[őöóòô]/g,"o"); s = s.replace(/[ŰÜÚÙÛ]/g,"U"); s = s.replace(/[űúüùû]/g,"u"); //... etc return s }gfgfds
['ae'] = ‘æǽ’;
['oe'] = ‘œ’;
['ue'] = ‘ü’;
['Ae'] = ‘Ä’;
['Ue'] = ‘Ü’;
['Oe'] = ‘Ö’;
['A'] = ‘ÀÁÂÃÄÅǺĀĂĄǍ’;
['a'] = ‘àáâãåǻāăąǎªä’;
['C'] = ‘ÇĆĈĊČ’;
['c'] = ‘çćĉċč’;
['D'] = ‘ÐĎĐ’;
['d'] = ‘ðďđ’;
['E'] = ‘ÈÉÊËĒĔĖĘĚ’;
['e'] = ‘èéêëēĕėęě’;
['G'] = ‘ĜĞĠĢ’;
['g'] = ‘ĝğġģ’;
['H'] = ‘ĤĦ’;
['h'] = ‘ĥħ’;
['I'] = ‘ÌÍÎÏĨĪĬǏĮİ’;
['i'] = ‘ìíîïĩīĭǐįı’;
['J'] = ‘Ĵ’;
['j'] = ‘ĵ’;
['K'] = ‘Ķ’;
['k'] = ‘ķ’;
['L'] = ‘ĹĻĽĿŁ’;
['l'] = ‘ĺļľŀł’;
['N'] = ‘ÑŃŅŇ’;
['n'] = ‘ñńņňʼn’;
['O'] = ‘ÒÓÔÕŌŎǑŐƠØǾ’;
['o'] = ‘òóôõöōŏǒőơøǿ’;
['R'] = ‘ŔŖŘ’;
['r'] = ‘ŕŗř’;
['S'] = ‘ŚŜŞŠ’;
['s'] = ‘śŝşšſ’;
['T'] = ‘ŢŤŦ’;
['t'] = ‘ţťŧ’;
['U'] = ‘ÙÚÛŨŪŬŮŰŲƯǓǕǗǙǛ’;
['u'] = ‘ùúûũūŭůűųưǔǖǘǚǜ’;
['Y'] = ‘ÝŸŶ’;
['y'] = ‘ýÿŷ’;
['W'] = ‘Ŵ’;
['w'] = ‘ŵ’;
['Z'] = ‘ŹŻŽ’;
['z'] = ‘źżž’;
['AE'] = ‘ÆǼ’;
['ss'] = ‘ß’;
['IJ'] = ‘IJ’;
['ij'] = ‘ij’;
['OE'] = ‘Œ’;
['f'] = ‘ƒ’;charAt() Returns the character at the specified index (position)
charCodeAt() Returns the Unicode of the character at the specified index
concat() Joins two or more strings, and returns a new joined strings
endsWith() Checks whether a string ends with specified string/characters
fromCharCode() Converts Unicode values to characters
includes() Checks whether a string contains the specified string/characters
indexOf() Returns the position of the first found occurrence of a specified value in a string
lastIndexOf() Returns the position of the last found occurrence of a specified value in a string
localeCompare() Compares two strings in the current locale
match() Searches a string for a match against a regular expression, and returns the matches
repeat() Returns a new string with a specified number of copies of an existing string
replace() Searches a string for a specified value, or a regular expression, and returns a new string where the specified values are replaced
search() Searches a string for a specified value, or regular expression, and returns the position of the match
SLICE
slice(position début, position fin)
premier caractère : 0
Attention, la chaine doit être de type
string:rand = rand.toString().slice(0,2)
Les 5 derniers caractères :
rand = rand.toString().slice(-5)
split() Splits a string into an array of substrings
startsWith() Checks whether a string begins with specified characters
substr() Extracts the characters from a string, beginning at a specified start position, and through the specified number of character
substring() Extracts the characters from a string, between two specified indices
toLocaleLowerCase() Converts a string to lowercase letters, according to the host’s locale
toLocaleUpperCase() Converts a string to uppercase letters, according to the host’s locale
toLowerCase() Converts a string to lowercase letters
toString() Returns the value of a String object
trim() Removes whitespace from both ends of a string
valueOf() Returns the primitive value of a String object
var chaine="Les chiens et les chiennes, les chats et les oiseaux";
var reg=newRegExp("(chien)","g");
chaine.replace(reg,"$1″)+"<BR>");
Explication
Cet exemple montre comment surligner une occurrence d’un mot.
Le motif (chien) de l’expression régulière permet de trouver tous les mots (chien).
Dans l’appel à replace(), le second paramètre indique comment remplacer chien.
Le symbole $1 représente la première expression entre parenthèse du motif.
Donc, "<SPAN style=’background-color=yellow’>$1</SPAN></FONT>" remplace toutes les occurrences chien par "<SPAN style=’background-color=yellow’>chien</SPAN></FONT>"
Consultez l’objet RegExp pour la définition du motif.Les opérations sur les chaînes
La concaténation
L’opération de base est la concaténation de chaînes. Elle consiste à assembler deux chaînes en une seule. L’opérateur est le +, à ne pas confondre avec l’opérateur addition qui s’applique aux nombres.
var chaine1="Vive le ";
var chaine2="JavaScript";
var chaine=chaine1+chaine2;
La variable chaine contient après ce script "Vive le JavaScript".La concaténation est une opération simple et très utile.
La longueur d’une chaîne
Une chaîne de caractères en javascript est un objet string sur lequel s’appliquent des propriétés et des méthodes. (Voir la page JavaScript, langage Objet pour plus d’informations)
La propriété length indique le nombre de caractères de la chaîne.
Pour une chaîne définie par var chaine="azerty";, chaine.length retourne le nombre de caractères, ici 6 caractères.Récupérer le nième caractère
La méthode charAt(n) récupère le caractère n. Attention, le premier caractère a comme indice 0.
Pour une chaîne initialisée par var chaine="azerty", chaine.charAt(1) retourne "z".Extraire une sous-chaîne
Il est utile de pouvoir extraire un morceau d’une chaîne. Par exemple, déclarons la variable date="15/08/2000″. La question est de récupérer le jour, le mois et l’année dans 3 variables différentes.
var date = "15/08/2000″;
var jour = date.substring(0,2);
var mois = date.substring(3,5);
var annee = date.substring(6,10);La méthode substring attend 2 paramètres :
- l’indice du premier caractère (inclus),
- l’indice du dernier caractère (exclus).
Si les deux paramètres sont inversés, javascript rétablit l’ordre logique :
chaine.substring(6,10) et chaine.substring(10,6) auront le même effet.
Si le deuxième paramètre est omis, la chaine retournée commence à l’indice indiqué et se termine à la fin de la chaîne.Retrouver une sous-chaîne dans une chaîne
Deux méthodes permettent de retrouver une sous-chaîne d’une chaîne. Ces méthodes retrouvent la position d’une chaîne et retourne son indice.
Par exemple, vous avez dans une variable javascript un nom de domaine et vous souhaitez retrouver l’extension :
var domaine="www.toutjavascript.com";
var extension=domaine.substring(domaine.lastIndexOf("."));La méthode lastIndexOf(souschaine) retourne l’indice de la dernière occurrence de souschaine.
Si la sous-chaîne n’est pas trouvé, lastIndexOf retourne -1.Retrouver une sous-chaîne dans une chaîne, le retour
Il existe une autre méthode très proche
chaine.indexOf(souschaine,debut)
qui retourne l’indice de la première occurrence de souschaine trouvée à partir du caractère debut de chaine.
Cette méthode permet par exemple d’extraire le domaine d’une url complète :
var url="http://www.toutjavascript.com/magicmenu/index.html;
var domaine=url.substring(7,url.indexOf("/",7));La variable domaine contient dans cet exemple www.toutjavascript.com qui est une sous-chaine de url qui commence au caractère 7 et qui se termine au premier slash (/) après "http://".
MAJUSCULES / minuscules
JavaScript offre deux méthodes pour transformer les lettres (et uniquement les lettres) d’un mot en majuscules ou en minuscules.
var chaine="Ceci est un texte";
var maj=chaine.toUpperCase();
var min=chaine.toLowerCase();A la fin de ce script, maj contient :
CECI EST UN TEXTE
et min contient :
ceci est un texteOn peut penser que ces traitements sont superflus. Ils permettent en fait de rendre plus homogène une saisie.
Imaginez que vos visiteurs remplissent un formulaire avec leurs coordonnées postales, certains mettront sans doute leur nom sans majuscule, le pays en minuscules… Grâce à ces méthodes, vous pourrez corriger leur saisie et avoir un fichier client homogène. Un exemple complet est traité dans le paragraphe suivant.Quelques exemples utiles
Ce paragraphe présente des applications concrètes du traitement des chaînes de caractères.Vérifier qu’un mail est valide
Pour vérifier qu’un mail est valide, il suffit de tester la présence de @ et du point.
function verifiermail(mail) {
if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) {
return true
} else {
alert("Mail invalide !");
return false
}
}
Cette fonction vérifie la présence du caractère @ et du . pour vérifier la validité. Si ces 2 caractères sont trouvés, la fonction retourne true sinon, elle affiche un message et retourne false.Les noms propres
Voici une fonction qui ajoute une majuscule à la première lettre d’un mot.
Par exemple pierre, Pierre ou PIERRE deviennent Pierre.
function nompropre(mot) {
var m=mot.charAt(0).toUpperCase() +
mot.substring(1).toLowerCase();
return m;
}
Dans cette fonction, on récupère le premier caractère pour le mettre en majuscule et on lui ajoute le reste du mot forcé en minuscules.Remplacer toutes les occurrences d’une sous-chaîne
Cette fonction recherche dans une chaîne expr toutes les occurrences d’une sous-chaîne a et les remplace par une sous-chaîne b.
Ce script fonctionne pour toutes les versions de navigateurs au-delà de 3.function Remplace(expr,a,b) {
var i=0
while (i!=-1) {
i=expr.indexOf(a,i);
if (i>=0) {
expr=expr.substring(0,i)+b+expr.substring(i+a.length);
i+=b.length;
}
}
return expr
}var date = "15/08/2000″;
var jour = date.substring(0,2);
var mois = date.substring(3,5);
var annee = date.substring(6,10);