-1
votes

JavaScript Regex remplacer []

J'essaie de remplacer les éléments suivants dans une regex: -

str.replace(/[company-name]/g, 'Google');


4 commentaires

Quel est votre exemple d'entrée String str 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.


[] sont des caractères méta. Vous devez vous échapper. str.replace (/ \ [nom-nom \] / g, 'google')


4 Réponses :


1
votes

Vous devez échapper au démarrage [ code> aussi, dans ce cas, car ils sont caractères spéciaux aussi:

p>

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"));


0 commentaires

1
votes

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);


0 commentaires

0
votes

Vous devez échapper à des caractères spéciaux comme des crochets dans ce cas. Il suffit d'utiliser: xxx


1 commentaires

Pourquoi ai-je été évité?



0
votes

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"))


0 commentaires