本文介绍了JavaScript获取字符串的实际长度(无实体)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要确定可能包含html实体的字符串的长度.
I need to determine the length of string which may contain html-entities.
例如& darr;" (↓)将返回长度6,这是正确的,但我希望将这些实体仅计为1个字符.
For example "&darr ;" (↓) would return length 6, which is correct, but I want these entities to be counted as only 1 character.
推荐答案
<div id="foo">↓</div>
alert(document.getElementById("foo").innerHTML.length); // alerts 1
因此,基于该基本原理,创建一个div,将混合了实体的字符串附加到其上,提取HTML并检查其长度.
So based on that rationale, create a div, append your mixed up entity ridden string to it, extract the HTML and check the length.
var div = document.createElement("div");
div.innerHTML = "↓↓↓↓";
alert(div.innerHTML.length); // alerts 4
为方便起见,您可能希望将其放在函数中,例如:
You might want to put that in a function for convenience, e.g.:
function realLength(str) { // maybe there's a better name?
var el = document.createElement("div");
el.innerHTML = str;
return el.innerHTML.length;
}
这篇关于JavaScript获取字符串的实际长度(无实体)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!