Ну если не нужно внедрять в DOM, то можно использовать два обычных replace:
var str="[*Текст*]";
var str = str.replace(/\[\*/g, "<div>");
var str = str.replace(/\*\]/g, "</div>");
С учётом поправки:
str.replace(/\[\*([\w\d]*)\*\]/g,"<div>$1</div>")
Но здесь не предусмотрена вложенность и возможно какие-то символы, только сама идея