使用 Javascript 每 46 个字符换行一行



我尝试使用以下代码行来检查字符串是否大于 46 个字符。如果它更长,它将每 46 个字符换行一行,但是,我没有这样做。

谁能告诉我出了什么问题?

function ContentFormat(content)
{
    var start = "";
    var end = "";
    var space = "<br/>&nbsp; &nbsp;";
    var newcontent = "";
    var toadd = "";
    if (content.length > 46)
    {
        for (var i = 0, len = content.length; i < len; i++) {
            if(i/46 == 0)
            {
                start = content.slice(0, i);
                end = content.slice(i);
                toadd = start.concat(space, end);
            }
            newcontent = toadd;
            toadd = "";
        }
    }
    return newcontent;
}

你在 for loop 和 if 条件中做错了。

function ContentFormat(content)
{
    var start = "";
    var end = "";
    var space = "<br/>&nbsp; &nbsp;";
    var newcontent = "";
    var toadd = "";
    var len = content.length
    if (len > 46)
    {
        for (var i = 0; i < len; i++) {
            if(i%46 == 0)
            {
                start = content.slice(0, i);
                end = content.slice(i);
                toadd = start.concat(space, end);
            }
            newcontent = toadd;
        }
    }
}

你的逻辑是完全错误的,使用下面的代码而不是你的代码在 46 个字符后添加中断!

function ContentFormat(content)
{
    var leftPortion = "";
    var space = "<br/>&nbsp; &nbsp;";
    var newcontent = "";
    while (content.length > 46)
    {
        leftPortion = content.slice(0, 45);
        content = content.slice(45);
        newcontent = newcontent + leftPortion + space;
    }
    newcontent = newcontent + content;
    window.alert(newcontent);
}

这也可以通过正则表达式和 String.replace 方法来实现。

var str = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.';
function breakEvery(str, interval, breaker) {
    if (str === void 0) { str = ""; }
    if (interval === void 0) { interval = 0; }
    if (breaker === void 0) { breaker = "n"; }
    if (str.length < interval) {
        return str;
    }
    var re = new RegExp('.{' + interval + '}', "ig");
    return str.replace(re, function (part) { return part + breaker; });
}
console.log(breakEvery(str, 46, "n<br/>&nbsp; &nbsp;"));

最新更新