如何使用javascript制作包含html标签的单词计数
How to make a word count that contains html tags using javascript?
嗨,我想做一个单词计数在我的RTE(富文本编辑器)与javascript也可以使用jquery。但是它不应该计算html标签和重复的空白。
示例文本:
<p>11 22 33</p><p>44</p>5<br></div>
javascript应该只显示5。
是否有任何javascript代码,这也是快速计算字数?
谢谢!
试试这样做:你在div中得到html,然后你删除所有的标签,并用空格代替它们。您删除(修剪)所有左右空格,最后将字符串拆分为一个数组。长度就是你的答案。
var cont = $("#content").html();
cont = cont.replace(/<[^>]*>/g," ");
cont = cont.replace(/'s+/g, ' ');
cont = cont.trim();
var n = cont.split(" ").length
alert(n);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="content">
<p>11 22 33</p><p>44</p>5<br></div>
var words = [];
function getWords(elements) {
elements.contents().each(function() {
if ($(this).contents().length > 0) return getWords($(this));
if ($(this).text()) words = words.concat($(this).text().split(" "));
})
}
getWords($('<div>').html('<p>11 22 33</p><p>44</p>5<br></div>'));
console.log(words,words.length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
您可以通过使用jQuery创建带有内容的元素来做一些棘手的事情。
var str = '<p>11 22 33</p><p>44</p>5<br></div>';
var len = 0;
// create a temporary jQuery object with the content
$('<div/>', {
html: str
})
// get al child nodes including text node
.contents()
// iterate over the elements
.each(function() {
// now get number or words using match and add
len += (this.textContent.match(/['w'd]+/g) || '').length;
});
console.log(len);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
您可以使用Countable.js进行实时单词计数,尽管它不会忽略HTML标记。
相关文章:
- 如何忽略单词like“”中的未使用空格;测试-文本”;同时构建html标签
- 我怎样才能把p中的一个单词包装在a标签中呢
- 使用 JavaScript 正则表达式获取所有没有 HTML 标签的单词
- 如何在 JavaScript 中计算 P 标签中的单词
- 输入标签从不显示非数字单词的面
- 将每个单词替换为标签
- 将单词包装在标签中,保留标记
- 在 HTML 5 表单中每个单词的开头添加一个井号标签 (#)
- 选择 h2 标签的前两个单词并换行 span 标签
- 如何添加<br/>在最后一个单词上加标签
- 在字符串内的单词周围添加标签+类名
- HTML 和 JS:用 标签将文档中的每个单词括起来
- 如何为每个系列的高图活动计添加标签
- 限制仅为特定单词或数字输入标签
- 如何编写regex来删除HTMl迷你器中标签和单词之间的空白
- 如何用jQuery在span标签中换行文本,除了第一个单词
- 用javascript中的随机单词替换段落标签内容
- 如何包装html标签为jquery鼠标选择单词
- 当value包含多个单词时,选择标签中的选项混乱
- 将每个单词的第一个字母包装在span标签- javascript中