jQuery - .length()将特殊字符计为2?

时间:2011-04-04 10:26:28

标签: javascript jquery char

我使用$('#id').val().length;时出现此问题,当我使用2æø等字符时,它会返回å

有人可以告诉我为什么以及如何让它像(一)char一样工作?

3 个答案:

答案 0 :(得分:1)

试试这个:

http://jsfiddle.net/Innuendo108/GXwGG/

有2个字符,长度= 2

答案 1 :(得分:1)

我认为你使用了额外空间或该角色的任何一面。

<p id="t">&aelig;</p>
$('#t').text().length

这项工作正常。

答案 2 :(得分:1)

我怀疑其他地方正在发生,这不是编码问题。

我拒绝相信这是一个jQuery问题(请参阅http://jsfiddle.net/KLzYf/了解我的jsutification)。

以下原始HTML将报告“1”:

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
</head>
<html>
<body>
<input type="text" value="æ" id="test"/>
</body>
<script type="text/javascript">
    alert(document.getElementById("test").value.length);
</script>

</html>

我有兴趣看一些HTML /其他代码。例如,要进行一些测试,以下内容将为您提供什么

alert("æ".length);  //=1?
alert('"' + $('#id').val() + '"'); //are there any spaces/other chars?

此外,如果您在HTML上查看源代码,输入的内容会是什么样的。