Хм, может быть, что-то вроде этого:
var result = "blabla url(hello;you)".replace(/url\(([^)]*)\)/, function(_, url) {
return "url(" + url.replace(/;/g, "[]") + ")";
});
Я использовал два вызова «.replace ()», которые могут не быть необходимыми, но мне стало легче думать. Внешний изолирует содержимое "url ()", а затем внутренняя замена исправляет точки с запятой.