将多个换行符插入JavaScript字符串(regex)(CodeMirror)

时间:2012-06-04 16:10:20

标签: javascript regex string formatting line-breaks

我有一些字符串,我想在某些点插入一些换行符。

我想出了一些后勤工作,但总的来说我似乎无法解决这个问题,可能是因为我对正则表达式的经验有限。

基本上我有一长串XML标签,这些标签都在一行上。我想在某些点添加换行符以使数据更加格式化并且看起来不错。我正在使用CodeMirror在网页上显示此数据,但出于某种原因,它全部在第1行。

所以我需要从这样的事情出发:

<Sample><Name></Name><PhoneNumber><AreaCode></AreaCode><Number></Number></PhoneNumber></Sample>

对于这样的事情:

<Sample>
  <Name></Name>
  <PhoneNumber>
    <AreaCode></AreaCode>
    <Number></Number>
  </PhoneNumber>
</Sample>

CodeMirror将处理剩余的格式化我需要做的就是使用正则表达式或某种循环在正确的位置插入换行符。标签将会或可以改变,所以我猜测必须使用正则表达式。

我已经成功使用\ n和&amp; #xD插入换行符,但似乎无法使用正则表达式来检测正确的位置。

非常感谢任何帮助。感谢。

更新 我忽略了这一点,但括号实际上是以&lt;和&gt;

所以示例标记看起来像:

&lt;PhoneNumber&gt;

&lt;/PhoneNumber&gt;

所以基本上需要在每个\n之后插入&gt;,这是一个结束标记或包含子标记的开始标记。

2 个答案:

答案 0 :(得分:0)

试试这个regex模式:

  >\s*<(?!/)

替换字符串:>\n<

更新

&gt;\s*&lt;(?!/)

答案 1 :(得分:0)

这里有龙。

我想指出一个very similar question answered awhile ago,它可以很好地解释为什么你不应该自己解析XML,除非你真的知道你在做什么。

如果你想获得不错的换行符,请使用XML反序列化器。