从 data-* 属性中删除 HTML,留下新行
Strip out HTML from data-* attribute, leaving New Lines
我环顾四周,但找不到此解决方案的答案。
有没有办法通过 data-* 属性从 textarea 字段中删除 HTML 标签,留下换行符?
到目前为止我的代码:http://jsfiddle.net/xymvcLcv/
我已经能够用 <br>
s 替换新行,但无法弄清楚如何同时删除用户输入的任何 HTML...
.replace(/\n/g, '<br/>')
.replace(/<[^>]*>/g, '').replace(/<|>/g, '').replace('&', '&').replace(/\n/g, '<br>')
在添加自己的内容之前删除 HTML 很重要。
如果您除了在他们输入后在他们的浏览器中显示它(即将其存储在数据库中)之外做任何事情,请确保您也在后端对其进行清理!客户端验证很容易解决。
要剥离 html 并仅检索文本,您可以使用
function stripHTML(html){
var root = document.implementation.createHTMLDocument().body;
root.innerHTML = html;
return root.textContent;
}
要保留换行符,请使用 white-space
CSS 属性:
white-space: pre; /* preserve newlines, preserve spaces, don't wrap text */
white-space: pre-wrap; /* preserve newlines, preserve spaces, wrap text */
white-space: pre-line; /* preserve newlines, collapse spaces, wrap text */
我环顾四周,但找不到此解决方案的答案。
有没有办法通过 data-* 属性从 textarea 字段中删除 HTML 标签,留下换行符?
到目前为止我的代码:http://jsfiddle.net/xymvcLcv/
我已经能够用 <br>
s 替换新行,但无法弄清楚如何同时删除用户输入的任何 HTML...
.replace(/\n/g, '<br/>')
.replace(/<[^>]*>/g, '').replace(/<|>/g, '').replace('&', '&').replace(/\n/g, '<br>')
在添加自己的内容之前删除 HTML 很重要。
如果您除了在他们输入后在他们的浏览器中显示它(即将其存储在数据库中)之外做任何事情,请确保您也在后端对其进行清理!客户端验证很容易解决。
要剥离 html 并仅检索文本,您可以使用
function stripHTML(html){
var root = document.implementation.createHTMLDocument().body;
root.innerHTML = html;
return root.textContent;
}
要保留换行符,请使用 white-space
CSS 属性:
white-space: pre; /* preserve newlines, preserve spaces, don't wrap text */
white-space: pre-wrap; /* preserve newlines, preserve spaces, wrap text */
white-space: pre-line; /* preserve newlines, collapse spaces, wrap text */