2010-04-19 5 views

Répondre

18
"string()".replace(/\(.*?\)/, "replacement") 
+1

FYI: Cette solution inclut les parenthèses dans le remplacement. Ce qui n'est pas exactement ce que le PO a demandé. – jaredbaszler

11

Vous pouvez utiliser une expression régulière - ce n'est pas jQuery, mais une partie de JavaScript:

var s = "hello (there)"; 
s = s.replace(/\(.*?\)/, 'world'); 

Pour plus d'une seule paire:

s = s.replace(/\(.*?\)/g, 'world'); 

Cela ne fonctionnera pas si les parenthèses contiennent plus de parenthèses, faites attention à vous; une autre option est d'utiliser /\(.*\)/ pour capturer du premier au dernier - "a (b (c) d)" ->"a world", mais la même chose pour "a (b) c (d)".

+1

FYI: Cette solution inclut les parenthèses dans le remplacement. Ce qui n'est pas exactement ce que le PO a demandé. – jaredbaszler

1

Plutôt que d'utiliser JQuery, utiliser des expressions régulières: http://www.w3schools.com/jsref/jsref_replace.asp

Il est le deuxième exemple, où vous pouvez spécifier une expression rationnelle pour cibler les (et), puis remplacer le contenu intérieur ... quelque chose comme/(. +)/i comme une expression régulière devrait fonctionner.

HTH.

+0

Vous n'avez pas besoin de '/ i', les parenthèses n'ont pas de majuscules ni de minuscules - ceci n'est utile que pour trouver des littéraux. – Kobi

+0

Bon point, merci. –

+0

Pour référence future: cette solution remplace le texte ENTRE les parenthèses. Les solutions ci-dessous de Kobi et Koctehko remplacent le texte entre les parenthases et aussi les parenthases eux-mêmes. – jaredbaszler

Questions connexes