В подстроке нужно бы ещё спецсимволы экранировать, а то:
var slovo = 'javascript';
var search = 'V.S';
var regex = new RegExp('(' + search + ')', 'i');
var result = regex.test(slovo) ? slovo.replace(regex, '<b>' + "$1" + '</b>') : slovo;
alert(result);
--------
Вариант без регулярок, может кому-нибудь пригодится:
function searchToBold(text, search) {
var i = text.toLowerCase().indexOf(pattern.toLowerCase());
if(i + 1) {
text = text.substr(0, i) + text.substr(i, search.length).bold() + text.substr(i + search.length);
}
return text;
}
alert(searchToBold('javascript', 'vas'));
P.S.: bold() хоть и устаревший метод, но смотрится красивее.