Exercices
Obtenir l'avant dernier caractères d'une chaîne
// une ligne var c = "abcdef".match(/(.).$/)[1] /* 'e' */ var c = 'abcdef'.match(/.(?=.$)/) /* 'e' */ var c = "abcdef".substr(-2, 1) /* 'e' */ var str = 'abcdef', c=''; if (str.length > 1) { c=str.charAt(str.length-2); } /* 'e' */ var str = 'abcdef', c=''; if (str.length > 1) { c=str[str.length-2]; } /* 'e' */ // multi ligne var re = /(.).\n/g; var m = [], s= null; while(s = re.exec("abcdef\nghijkl\n")) { m.push(s); } m;
Inverser une date: YYYY-MM-DD vers DD-MM-YYYY:
'2013-03-01'.replace(/(\d{4})-(\d\d)-(\d\d)/, "$3-$2-$1") /* 01-03-2013 */ '2013-03-01'.replace(/^(\d+)-(\d+)-(\d+)$/, "$3-$2-$1") /* 01-03-2013 */ '2013-03-01'.split('-').reverse().join('-') /* 01-03-2013 */ var s = '2013-03-01'; s.substr(-2,2) + s.substr(4,4) + s.substr(0,4) /* 01-03-2013 */
Répéter un caractère
// soit String.prototype.repeat = function(n) (n) { var r = ''; for(var i = 0; i < n; i++) { r+=this; } return r; } // ou encore String.prototype.repeat = function(n) { return (new Array(n+1)).join(this); } // Utilisation: 'foo'.repeat(3) donne 'foofoofoo'
Caractère se répète?
// check if a char is repeating itself... String.prototype.charRepeatItself = function() { var s = this.toString(); var o = {}; for (var i = 0, l = s.length; i < l; i++) { var c = s.charAt(i); if (c in o) { return true; } o[c]=1; } return false }; 'ABCZ'.charRepeatItself() // false 'ABCA'.charRepeatItself() // true
Changer le caractère à une position
// soit String.prototype.setCharAt = function(n,c) { return [this.slice(0,n), c, this.slice(n+1)].join(''); } // ou encore String.prototype.setCharAt = function(n,c) { return this.replace(new RegExp("(.{"+n+"})."),"$1"+c); } // Utilisation: 'foocar'.setCharAt(3,'b') donne 'foobar'
Remplissage (padding)
// 3-zeros padding for number n ("00" + n).slice(-3) // n = 0 : '000', n = 10 : '010', n = 999 : '999', n = 1000 : '000'
indexOf
Si on ne veut pas utiliser String.prototype.indexOf...
function indexOf(str, search, indexStart) { indexStart = indexStart || 0; if (!search.length) { return -1; } for(var i = indexStart; i < str.length; i++) { if (str[i] == search[0]) { for(var j = 1; j+i < str.length; j++) { if (str[j+i] !== search[j]) { break; } } if (j == search.length) { return i; } } } return -1; } console.log(indexOf('this is a test', 'is a',0)); // 5 console.log(indexOf('this is a test', 'that',0)); // -1
HTML encoding
"'Subway Vigilante'".replace(/&#(\d+);/g, function(a,b) { return String.fromCharCode(b); }) // "'Subway Vigilante'"
Dernière modification: 2013-11-02 12:14:19 par Yan Morin
Hébergé par ProgYSM