Brick,
var str = "[J] test [J]",
metachars = /([[\]{}()*+?.\\|^$\-,&#\s])/g,//служебные символы
patern = "[J]",//строка поиска
reg = new RegExp(patern.replace(metachars, '\\$1') /* добавление слеша к служебным символам строки поиска */ , 'g'),//создание RegExp
q=str.replace(reg,"Кандидат Javascript-наук");
alert(q);