如何用换行符替换分号?

时间:2016-09-20 13:07:56

标签: javascript angularjs ionic-framework

我想用新行替换分号 即,无论何时分号苹果,它都必须移动到新线 我试过了.replace()。它不适用于新线路,但正在为其他线路工作。还有一个问题是只有第一个分号会被替换。

这是我的代码段:

<p>{{X.content.replace(';', '\n')}} </pre>

这不起作用,然后我尝试了:

<p> {{X.content.replace(';', 'REPLACE')}} </p>

代码正在处理任何其他字符串,但只会替换第一个分号(;)。

我希望将其转换并显示在新行

  

第一行;第二行;第三行;

3 个答案:

答案 0 :(得分:3)

您需要带有全局标志的正则表达式才能更改所有实例

X.content.replace(/;/g, '\n')

这不是你应该在视图中做的事情。建议您创建过滤器或修改控制器中的数据

答案 1 :(得分:0)

尝试这样就是一个有效的例子

var x ="dsdfs;sfsf;fdsfs"
console.log(x)//"dsdfs;sfsf;fdsfs"

var y  =x.replace(/;/g, " \n ")
 console.log(y)
 //"dsdfs 
   sfsf 
   fdsfs"

答案 2 :(得分:0)

你有几个不同的错误:

仅替换第一个分号:

这是JavScript的默认设置。正则表达式将取代其余的。

X.content.replace(/;/g, '\n')

换行符未显示:

这是因为HTML默认不尊重换行符。你已经意识到了这一点,因为你写了<p></pre>(这是奇怪的和破碎的)。

或者:
;替换为\n,然后使用格式良好的前缀:

<pre>{{X.content.replace(/;/g, '\n')}}</pre>

或者:
;替换为<br />,然后将结果声明为html:
(警告:此选项会让您对注入攻击持开放态度,因此您需要确保信任该内容)

<p ng-bind-html="X.content.replace(/;/g, '<br />')"></p>

编辑:

对你来说,一个更好的方法可能就是忘记所有这些而且只是这样做:

<p ng-repeat="line in X.content.split(';')">{{line}}</p>

这样风险较小,可以根据您的选择生成更好的HTML格式。