Q:

Замена выражения, содержащего круглые скобки, с помощью replace

Как с помощью метода replace в JavaScript заменить выражение, содержащее круглые скобки? 
У меня есть таблица с продуктами.  В последней колонке стоят checkbox, при нажатии на которые название и калорийность добавляются/удаляются в невидимый textarea. 
Я написал небольшой код:
var str = document.getElementById("mes1").value;
var AB1 = the_element.parentNode.parentNode.previousSibling.previousSibling.previousSibling.previousSibling.textContent
        + " - " + ABTotalfunc + " ккал."  + "\n";
var n = str.replace(new RegExp(AB1, 'g'), "");
document.getElementById("mes1").value = n;

При снятии флажка фраза, к примеру "Фасоль, зерно", удаляется без проблем, а вот фраза "Фасоль (стручок)" не удаляется.  Я так полагаю, что это из-за круглых скобок.  Как можно это исправить? 

A:

Для экранирования специальных знаков (-, /, \, ^, $, *, +, ?, ., (, ),  |, [, ], {, }) используйте
RegExp.escape= function( text ) {
     return ( text +'' ).replace( /[.?*+^$[\]\\(){}|-]/g, "\\$&" );
};

А затем
var n = str.replace(new RegExp(RegExp.escape(AB1), 'g'), "");

