JavaScript获取字符串的实际长度(无实体) [英] JavaScript Get real length of a string (without entities)

查看:76
本文介绍了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">&darr;</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 = "&darr;&darr;&darr;&darr;";
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获取字符串的实际长度(无实体)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆