J'essaie de remplacer les éléments suivants dans une regex: -
str.replace(/[company-name]/g, 'Google');
4 Réponses :
Vous devez échapper au démarrage p> [ code> aussi, dans ce cas, car ils sont caractères spéciaux aussi: var str = "I am from [company-name]!";
console.log(str.replace(/\[company-name]/gi, "Google"));
str = "[company-name]'s awesome!";
console.log(str.replace(/\[company-name]/gi, "Google"));
Mais je sais que la regex remplacera toute lettre de correspondance. P>
Ce n'est que le cas car vous avez encapsulé vos caractères dans une classe de caractères à l'aide de
[ code> et] code>. Afin de les traiter comme des caractères normaux, vous pouvez vous échapper à ceux-ci à l'aide de\ code> devant vos caractères spéciaux: p>xxx pré> voir exemple de travail ci-dessous:
p>
const str = "[company-name]", res = str.replace(/\[company-name\]/g, 'Google'); console.log(res);
Vous devez échapper à des caractères spéciaux comme des crochets dans ce cas.
Il suffit d'utiliser:
Pourquoi ai-je été évité?
Vous pouvez le faire de cette façon:
p>
var txt = "So I'm working at [company-name] and thinking about getting a higher salary." var pattern = /\[.+\]/g; console.log(txt.replace(pattern, "Google"))
Quel est votre exemple d'entrée String
str code> et quelle sortie de cette chaîne vous voulez obtenir?Les crochets carrés littéraux doivent être échappés. Voir régulier-expressions.info/charactérents.html#Special
Vous devez échapper aux crochets avec \ Depuis qu'ils ont une signification dans Regexps. Bien que dans ce cas, à l'aide de Regexps semble surcharger s'il s'agit juste d'une chaîne remplacer.
[] code> sont des caractères méta. Vous devez vous échapper.str.replace (/ \ [nom-nom \] / g, 'google') code>