我有这个问题,当我使用$('#id').val().length;
它返回2
当我使用字符æ
,ø
和å
。jQuery - .length()计算特殊字符为2?
有人能告诉我为什么以及如何使它像(一)char一样工作吗?
我有这个问题,当我使用$('#id').val().length;
它返回2
当我使用字符æ
,ø
和å
。jQuery - .length()计算特殊字符为2?
有人能告诉我为什么以及如何使它像(一)char一样工作吗?
我怀疑其他事情正在发生,这不是编码问题。
我拒绝相信这是一个jQuery问题(请参阅http://jsfiddle.net/KLzYf/我的评论)。
下面原始的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,什么做你输入的内容看起来像。
谢谢你是我的问题UTF-8 :) – ParisNakitaKejser 2011-04-04 11:00:15
试试这个http://jsfiddle.net/KLzYf/9/将军通过 – Vixxs 2017-04-07 02:06:57
我想你使用额外的空间,无论是或字符中的任何一方。
<p id="t">æ</p>
$('#t').text().length
这个工作正常。
我想你已经错过了空间:-) – 2011-04-04 10:48:45
好像很奇怪 – 2011-04-04 10:29:36
你确定没有空间吗?如果你尝试'“æ”.length',会发生什么? – 2011-04-04 10:41:05
我有一种感觉,这与UTF-8组合字符有关 - 有两种有效的方式可以将UTF中的很多字符作为单个字符和一对作为一对......这会导致很多令人头痛的问题,但是我不知道真的回答 – tobyodavies 2011-04-04 10:50:23