我是前端开发的新手,我正在尝试找出在每个逗号后使用一个新行的文本区域的最佳方法。我真的想弄清楚AngularJs中最好的方法(过滤器,正则表达式等)
立即
hello,how,are,you
后:
Hello
how
are
you
目前:
<textarea cols="105" rows="30" disabled="true"
style="background-color: floralwhite; resize: none; white-space: normal; margin-top: 0px; border: none;">
{{profile.exampleValues}}
</textarea>
我试着写一个没有运气的过滤器:
.filter('newlines', function () {
return function (text) {
return text.replace(',', '<br/>');
}
})
答案 0 :(得分:1)
我更新了您的代码以使其正常运行。
首先,white-space: normal;
替换为white-space: pre-line;
其次,改进了过滤器以处理正则表达式。根据{{3}}:
replace()方法在字符串中搜索指定的值或正则表达式,并返回一个替换指定值的新字符串。
注意:如果要替换值(而不是正则表达式),则只替换值的第一个实例。要替换所有出现的指定值,请使用global(g)修饰符
app.filter('newlines', function () {
return function (text) {
return text.replace(/,/g, '\n');
};
});
因此,textarea
应如下所示:
<textarea cols="105" rows="30" disabled="true"
style="background-color: floralwhite; white-space: pre-line; resize: none; margin-top: 0px; border: none;">
{{profile.exampleValues | newlines}}
</textarea>
请查看W3C。