我想用新行替换分号
即,无论何时分号苹果,它都必须移动到新线
我试过了.replace()
。它不适用于新线路,但正在为其他线路工作。还有一个问题是只有第一个分号会被替换。
这是我的代码段:
<p>{{X.content.replace(';', '\n')}} </pre>
这不起作用,然后我尝试了:
<p> {{X.content.replace(';', 'REPLACE')}} </p>
代码正在处理任何其他字符串,但只会替换第一个分号(;)。
我希望将其转换并显示在新行
中第一行;第二行;第三行;
答案 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格式。