Javascript Dom元素的字符计数
我的函数中可以有这样的字符串参数Javascript Dom元素的字符计数,javascript,jquery,Javascript,Jquery,我的函数中可以有这样的字符串参数 "Hello World <a>This is Link</a>" "<span> Hello World </span><a>This is Link</a>" "Hello <br> World <a>This is Link</a>" “你好,世界,这里是链接” “你好,世界,我是林克” “你好世界这里是链接” 我想通过不包括dom元素标记来获得
"Hello World <a>This is Link</a>"
"<span> Hello World </span><a>This is Link</a>"
"Hello <br> World <a>This is Link</a>"
“你好,世界,这里是链接”
“你好,世界,我是林克”
“你好
世界这里是链接”
我想通过不包括dom元素标记来获得文本的字符数。(类似或
)我只想要字符数
有什么建议吗?就是这样
mstring=“你好
这是链接”;
cleanText=mstring.replace(/]+(>|$)/g,“”;
console.log(cleanText.length)代码>使用/]*>/g
查找所有标记。请尝试以下方法(不计算空间):
var str1=“你好,这里是Link”;
var str2=“你好,这里是Link”;
var str3=“你好
这是链接”;
函数getCharLen(str){
str=str.replace(/]*>/g,“”).split(“”).filter(i=>i!=“”);
返回str.length;
}
console.log(getCharLen(str1));
console.log(getCharLen(str2));
console.log(getCharLen(str3))代码>尝试使用正则表达式:/()/ig
- 从
- 用于全局和不区分大小写的修饰符
ig
您将获得所有的开始和结束标记。只需使用replace将它们设为空,并计算字符串其余部分的长度
函数计数(str){
var regex=/()/ig;
返回str.replace(regex.)。长度;
}
/*试验*/
var a=“你好,这里是Link”;
var b=“你好,这里是Link”;
var c=“你好
这是链接”;
控制台日志(计数(a));
控制台日志(计数(b));
控制台日志(计数(c))代码>基于Regexp的解决方案:
函数删除HTMLTAGS(htmlString){
返回htmlString
.替换(/(]*>)?/g,“”)
.替换(/(]*>)?/g“”;
}
将字符串放入节点并获取textcont
属性的长度
(函数(){
var节点=document.createElement('pre');
window.getCharCount=函数(html){
node.innerHTML=html;
返回node.textContent.length;
//返回node.textContent.trim().length;//如果要忽略开头和结尾的空格
};
}());
log(getCharCount('helloworld,这里是Link');
log(getCharCount('helloworld This is Link');
log(getCharCount('Hello
World This is Link')
创建一个临时元素,添加一个字符串作为innerHTML
,并计算textContent
中的字符数。