在javascript中将字符串拆分为句子

时间:2016-03-15 11:24:49

标签: javascript split

我试图将一个字符串拆分成一个行数组,但它不起作用,这是我迄今为止所尝试过的 -

value = '<p>line1</p><p>line2</p><p>line3</p>';

var lines = value.split('/<p>|<\/p>/');
console.log(lines.length);

//expecting 3 but output is 1

3 个答案:

答案 0 :(得分:1)

你做错了。以这种方式使用它:

&#13;
&#13;
value = '<p>line1</p><p>line2</p><p>line3</p>';

var lines = value.split('</p><p>');
console.log(lines.length);
&#13;
&#13;
&#13;

此外,要删除第一个和最后一个<p></p>,请使用您拥有的RegEx。对于那些要求:

的人

&#13;
&#13;
value = '<p>line1</p><p>line2</p><p>line3</p>';

value = value.replace(/^<p>|<\/p>$/g, "");

var lines = value.split('</p><p>');
console.log(lines.length);
console.log(lines);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

你可以用正则表达式做到这一点。

value = '<p>line1</p><p>line2</p><p>line3</p>';

var v = value.replace(new RegExp("<p>(.*?)<\/p>", "g"), '$1\n');
var lines = v.split("\n");
lines.splice(-1);
console.log(lines);

https://jsfiddle.net/goe14nkf/

这会正确返回您的行:["line1", "line2", "line3"]

答案 2 :(得分:0)

另一种方法可能是使用本机选择器(此实现适用于IE9 +)

我们的想法是将dom字符串保存在实际的html文档正文中,并使用querySelectorAll获取段落,将NodeList转换为Array({返回的类型} {1}})。然后使用高阶函数Array.prototype.map来构建所需的行数。

这可能看起来有些过分,但如果你的某些段落碰巧有额外的属性,那就很有用了。

querySelectorAll