我如何用JavaScript从值中读取换行符,并将所有换行符替换为<br />元素?
例子:
从PHP传递的变量,如下所示:
"This is man.
Man like dog.
Man like to drink.
Man is the king."
我希望我的结果在JavaScript转换后看起来像这样:
"This is man<br /><br />Man like dog.<br />Man like to drink.<br /><br />Man is the king."
我在PHP中有一个从控制器传入的配置。(Laravel)
示例:PHP Config
'TEXT_MESSAGE' => 'From:Us\nUser: Call (1800) 999-9999\nuserID: %s'
然后在javascript中使用es6 reduce。注意我必须有两个\\或输出没有被正确替换。这里是与reduce函数相关的参数
previousValue(上次调用的值
callbackfn)
currentValue(当前元素的值)
currentIndex可选
array(要遍历的数组)可选
//p is previousVal
//c is currentVal
String.prototype.newLineReplace = function(){
return [...arguments].reduce((p,c) => p.replace(/\\n/g,c), this);
}
以下是我在剧本中如何使用它的。
<script type="text/javascript">var config = @json($config);</script>
config.TEXT_MESSAGE.newLineReplace("<br />")
当然,你可以像这样在javascript字符串中调用它。
let a = 'From:Us\nUser: Call (1800) 999-9999\nuserID: %s'
var newA = a.newLineReplace("<br />")
//output
'From:Us<br />User: Call (1800) 999-9999<br />userID: %s'