在javascript中将字符串拆分为句子
Split string into sentences in javascript
我正在尝试将字符串拆分为一个行数组,但它不起作用,这是我到目前为止尝试过的 -
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
你做错了。以这种方式使用它:
value = '<p>line1</p><p>line2</p><p>line3</p>';
var lines = value.split('</p><p>');
console.log(lines.length);
另外,要删除第一个和最后一个<p>
和</p>
,请使用您拥有的正则表达式。对于那些要求:
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);
另一种方法是使用本机选择器(此实现适用于IE9+)
这个想法是将你的 dom 字符串保存在一个实际的 html 文档正文中,并使用 querySelectorAll
来获取段落,将NodeList
转换为Array
(querySelectorAll
返回的类型)。然后使用高阶函数Array.prototype.map
构建所需的行数组。
这可能看起来矫枉过正,但如果您的某些段落碰巧具有额外的属性,这是强大的。
var sandbox = document.implementation.createHTMLDocument();
sandbox.body.innerHTML = '<p>line1</p><p>line2</p><p>line3</p>';
var paragraphs = Array.prototype.slice.call(sandbox.querySelectorAll('p'));
var lines = paragraphs.map(function (node) {
return node.innerText;
});
你可以用正则表达式来做到这一点。
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"]
相关文章:
- 我如何找到一个句子中的所有空格并替换忽略它们
- 拆分单词jquery
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 将字符串拆分为数组时出现JavaScript错误
- 在JavaScript中拆分日期字符串的更好方法是什么
- webpack代码拆分了handlerbs文件——结果是文件很大
- 如何将字符串拆分为字符,但在javascript中保留空格
- 简单地将拆分变量添加到对象中
- 使用jQuery检查提交时添加到句子中的单词
- 换行符拆分返回“”;未定义”;
- 将字符串拆分为;只要它's不在»«
- 拆分一个句子并使用JavaScript将其存储在数组中
- 在javascript中将字符串拆分为句子
- 正则表达式使用 match() 将长文本拆分为单独的句子
- 如何使用客户端 Javascript 将句子中的日语字符拆分为数组
- 将句子字符串拆分为单词数组,然后将单词数组拆分为单词数组中的字符数组
- 将字符串拆分为句子 - 忽略用于拆分的缩写
- 您将如何构建一个正则表达式,将段落拆分为句子,但不拆分<>内的任何标点符号
- 如何将Javascript字符串拆分为少于140个字符的句子
- 从具有括号并在括号中具有一定数量的固定值的句子中拆分字符