我正在寻找一种使用 NodeJS 从后端字符串中剥离标签的方法。这里的一些答案建议尝试node-validator
,但文档和任何答案都没有具体解释如何使用它。
例如,我在这样的变量中有一个字符串:
输入:
var text = '<p><b>Hello there!</b> I am a string <span class="small">but not a very exciting one!</span></p>'
期望的输出:
var newText = Hello there! I am a string but not a very exciting one!
node-validator
文档有几个选项,我认为最相关的是功能trim()
:
var check = require('validator').check,
sanitize = require('validator').sanitize
//Validate
check('test@email.com').len(6, 64).isEmail(); //Methods are chainable
check('abc').isInt(); //Throws 'Invalid integer'
check('abc', 'Please enter a number').isInt(); //Throws 'Please enter a number'
check('abcdefghijklmnopzrtsuvqxyz').is(/^[a-z]+$/);
//Sanitize / Filter
var int = sanitize('0123').toInt(); //123
var bool = sanitize('true').toBoolean(); //true
var str = sanitize(' \t\r hello \n').trim(); //'hello'
var str = sanitize('aaaaaaaaab').ltrim('a'); //'b'
var str = sanitize(large_input_str).xss();
var str = sanitize('<a>').entityDecode(); //'<a>'
是否可以使用它从字符串中剥离标签(以及类)?
编辑:我也cheerio
(基本上是jquery)加载并试图使用类似于:
HTML
<div class="select">
<p><b>Hello there!</b> I am a string <span class="small">but not a very exciting one!</span></p>
</div>
JAVASCRIPT
(function() {
var text = $(.select *).each(function() {
var content = $(this).contents();
$(this).replaceWith(content);
}
);
return text;
}
());
但这会导致'Object '<p><b>Hello....' has no method "contents"'
错误,如果使用 jQuery 更容易,我愿意使用类似的功能。