我要做的是:
function boldAt(string, positions)
{
var stringLen = string.length;
var stringArr = string.split("");
for (var i = 0; i < positions.length; i++)
{
var pos = positions[i];
# Make sure that the given position is not out of bounds on the string
if (pos < stringLen)
{
stringArr[pos] = "<b>" + stringArr[pos] + "</b>";
}
}
return stringArr.join("").replace(/<\/b><b>/g, '');
}
boldAt("theword", [1,4,5]); // returns "t<b>h</b>ew<b>or</b>d".
基本上,它的作用是将字符串拆分成一个字符数组,向指定的字符添加粗体标记,将数组重新连接成一个字符串,然后使用简单的正则表达式replace组合相邻的粗体标记。它还忽略大于字符串长度的给定位置。