2010-04-19 2 views

ответ

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

FYI: Это решение включает круглые скобки в замене. Это не совсем то, что спросил ОП. – jaredbaszler

11

Вы можете использовать регулярное выражение - это не JQuery, а часть JavaScript:

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

Для более одной пары:

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

Это не будет работать если в круглых скобках больше скобок, заметьте; другой вариант - использовать /\(.*\)/ для захвата с первого до последнего - "a (b (c) d)" ->"a world", но то же самое для "a (b) c (d)".

+1

FYI: Это решение включает круглые скобки в замене. Это не совсем то, что спросил ОП. – jaredbaszler

1

Вместо того чтобы использовать JQuery, использовать регулярные выражения: http://www.w3schools.com/jsref/jsref_replace.asp

Это второй пример, где вы можете задать регулярное выражение для целевого показателя в (а), а затем заменить внутреннее содержание ... что-то вроде/(. +)/i как регулярное выражение.

HTH.

+0

Вам не нужно '/ i', в круглых скобках нет верхних и нижних регистров - это полезно только при сопоставлении литералов. – Kobi

+0

Хорошая точка, спасибо. –

+0

Для справок в будущем: это решение заменяет текст BETWEEN круглыми скобками. Решения, приведенные ниже Коби и Коктеко, заменяют текст между парадентиазами, а также самими парафазеями. – jaredbaszler

Смежные вопросы