使用JavaScript读取字符串中的换行符

Jin*_*ong 14 javascript

可能重复:
用javascript中的<br />标记替换字符串中的所有换行符

如何使用JavaScript从值读取换行符并将其替换为<br />标记?

例:

var a = "This is man.
     Man like dog."
Run Code Online (Sandbox Code Playgroud)

我希望我的结果看起来像

var a = "This is man.<br />Man like dog.";
Run Code Online (Sandbox Code Playgroud)

Cli*_*ote 21

var newString=oldString.replace(/\n/g,"<br />");
Run Code Online (Sandbox Code Playgroud)

  • -1:如果有多个换行符,则会失败.在Javascript中,您必须使用/ pattern/g. (2认同)
  • 它已被修复,因为:) (2认同)

Koo*_*Inc 10

完整:我遇到过'\n'不起作用的情况,在我使用的情况下:

someString.replace(/\n/g,'<br />')
          .replace(/\r/g,'<br />')
          .replace(/\r\n/g,'<br />');
Run Code Online (Sandbox Code Playgroud)

  • str.replace(/\r \n?/ g,'<br />').replace(/ \n/g,'<br />'); 避免将\ r \n转换为<br /> <br /> (7认同)

nic*_*ckf 5

+1点击Upvote的答案.我只是指出使用这种定义字符串的方式,你会在那里有一堆额外的空格.简单地替换换行符实际上会给你这个字符串:

"This is man.<br />     Man like dog."
Run Code Online (Sandbox Code Playgroud)

基本解决方案是更改替换功能:

newString = oldString.replace(/\n\s*/g, "<br />");
Run Code Online (Sandbox Code Playgroud)

甚至更好(恕我直言),像这样定义你的字符串:

var a = "This is man.\n"
      + "Man like dog."
;
Run Code Online (Sandbox Code Playgroud)

这意味着您仍然可以获得良好的缩进,而无需在变量中添加额外的开销,此外,它还允许您轻松添加注释:

var a = "This is man.\n" // this is the first line.
      + "Man like dog."  // and woo a comment here too
;
Run Code Online (Sandbox Code Playgroud)

  • @click,upvote +1给你评论你赞成+1,因为我对你的答案给了+1. (2认同)