对于一个string如何换行

返回一个字符串。举例如下:
"1.《西游记》又称央视86版《西游记》,改编自明代小说家吴承恩同名文学古典名著。2.美猴王是所有孩子心中的启蒙英雄,每次打架前说一句“ 俺老孙来也 ”,就会觉得自己力量无穷。3.1986年春节一经播出,轰动全国,老少皆宜,获得了极高评价,造就了89.4%的收视率神话,至今仍是寒暑假被重播最多的电视剧,重播次数超过3000次,依然百看不厌,成为一部公认的无法超越的经典。"
怎么样让这个字符串可以换行显示,显示成:
1.····
2.····
3.····
这个样子。

阅读 5.4k
4 个回答
如果这个字符串是后端服务器传给你的话,并且在传过来的时候是有换行的,但是到了前端就没有换行显示的话,你可以使用replace去替换一下,
比如你上面例子的字符串testStr,
1.如果一开始是有换行的(也就是其实换行转成了\n 但是前端不识别的) :
那你可以使用testStr.replace(/\n/gi, '</br>')替换 然后把testStr赋值给标签的innerHTML
2.如果一开始就没有换行,一般情况你是没办法自己去根据什么特别的点去切割字符串然后换行的,除非传过来的字符串换行的地方有特殊标记
比如你和后端约定了换行的地方用**标识,这样你拿到testStr之后就把**替换成</br>

不过个人觉得你是第一种情况,因为这种情况我也遇到过

let str = '1.《西游记》又称央视86版《西游记》,改编自明代小说家吴承恩同名文学古典名著。2.美猴王是所有孩子心中的启蒙英雄,每次打架前说一句“ 俺老孙来也 ”,就会觉得自己力量无穷。3.1986年春节一经播出,轰动全国,老少皆宜,获得了极高评价,造就了89.4%的收视率神话,至今仍是寒暑假被重播最多的电视剧,重播次数超过3000次,依然百看不厌,成为一部公认的无法超越的经典。';

// 方法1:简单,有一定几率出错
console.log(str.replace(/(\d+\.)/g,'\n$1'));


console.log("=======================");

// 方法二:略复杂,错误几率不是没有,但低得多
let pos = 0,
    nextOrder = 2,
    result = [];
while((pos = str.indexOf(nextOrder+".")) > -1){
    result.push(str.slice(0, pos));
    str = str.slice(pos);
    nextOrder++;
}
result.push(str);
console.log(result.join('\n'));

使用 "``" 来代替 """ 或 "'",
或者是使用类似

"1.xxx" + 
"2.xxx" +
"3.xxx" ...

1.xxxx\n2.xxxx\n3.xxxx

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题