Quantcast
Channel: jide's blog
Viewing all articles
Browse latest Browse all 10

Remplacer des mots dans un texte en gardant la capitalisation

$
0
0

J'ai eu besoin de rempalcer des mots dans un texte par un autre mot, tout en gardant la capitalisation.

Avec le texte :
"It is a good burger. Or an hamburger. Burger is good".

On doit obtenir :
"It is a good sandwich. Or an hamburger. Sandwich is good".

Voici :
var replace = function(text, r, v) {
return text.replace(new RegExp('([^a-z])('+r+')|(^'+r+')(?=[^a-z]?)', "gi"), function(match, p1, p2, p3, offset, string) {
p1 = p1 || '';
p2 = p2 || p3;
if (p2[0].toUpperCase() == p2[0]) {
// Assume its all caps.
if (p2[1].toUpperCase() == p2[1]) {
v = v.toUpperCase();
}
// Assume its capitalized.
else {
v = v[0].toUpperCase() + v.slice(1);
}
}
return p1 + v;
});
}

Testons :
var text = "It is a good burger. Or an hamburger. Burger is good";
console.log(text + "\n" + replace(text, 'burger', 'sandwich'));


Viewing all articles
Browse latest Browse all 10

Trending Articles