Object RegExp
// Trois déclarations avec le même résultat. var re1 = new RegExp("[a-f]","i"); var re2 = RegExp("[a-f]","i"); var re3 = /[a-f]/i;
Symboles
var objRegExp = new RegExp(strTest,"i"); // un interval (tiret) - à l'intérieur d'un choix de caractère [], 0-9 indique 0 à 9 // les choix de caractères [] // début/inverse ^ commence par ou inverse du choix des caractères dans un [] (exemple: [^a] n'est pas "a". // fin $ termine par // les captures (parenthèse) ( et ) permet de capturer un résultat et de le stocker dans les variables $1, $2, $3 ou dans le tableau de résultats // ou | expression avant ou expression après /^allo|^bonjour/ signifie: commence par allo ou commence par bonjour. // un caractère (point) . n'importe quel caractère sauf \s // zéro ou un caractère (interrogation) ? // un ou plusieurs caractères (plus) + // zéro ou plusieurs caractères (étoiles) *
Cas spéciaux
\( parenthèse ouvrante \) parenthèse fermante \[ crochet ouvrant \] crochet fermant \| barre verticale \. point \* étoile \? point d'interrogation \^ chapeau \$ signe de dollar \d [0-9] \n changement de ligne \r retour de chariot \s caractères espaces tel que ' ', \t, \n, \r \S [^\s] \t tabulation
Fonctions
boolean test(string)
[string,string,string...] exec(string)
// [0] = premier résultat trouvé () // [1] = deuxième resultat trouvé ()
Cas pratique
Résolution
// 800, x600 ou 800x600: var re = /^\d+$|^\d*x\d+$/; // test: false, false, false, true, true, true [re.test(''), re.test('blabla') , re.test('600a'), re.test('600'), re.test('x600'), re.test('200x600')]
Couper des mots
Séparer des mots trop longs (problème d'affichage d'un texte) (2004/11/22 17:57)
var chaine = "12 12 34 abcdefghijkmnlopqrstuvwxyz"; console.log( chaine.replace(/(\S{4})(\S{4})??/g,"$1 $2") );
Résultat: "12 12 34 abcd efgh ijkm nlop qrst uvwx yz"
Multi-match global
On peut soit utiliser un while et un exec ou utiliser un replace avec une fonction.
var o = {}; var s = 'a1b2c3'; s.replace(/([a-z])([0-9])/g, function(_, a, b) { o[a] = b; }); // o est maintenant {"a":"1", "b":"2", "c":"3"}
Dernière modification: 2015-01-15 14:28:03 par Yan Morin
Hébergé par ProgYSM