2011-04-04 14 views
1

$('#id').val().length;を使用すると、æ,øåなどの文字を使用すると2が返されます。jQuery - .length()は特殊文字を2としてカウントしますか?

誰かが私にそれを(1つの)charのように動作させる理由と方法を教えてもらえますか?

+0

は奇妙なようです –

+0

空き領域はありませんか。 ''æ ".length'を試してみたらどうなりますか? –

+0

私はこれがUTF-8の文字を組み合わせることと関係があると感じています.UTFの文字を1つの文字として、そして1つをペアとして書く2つの有効な方法があります。私は本当に答えが分かりません – tobyodavies

答えて

1

ここで何か他のことが起こっていると思われます。エンコーディングの問題ではありません。

私はこれが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 /他のコードの一部を見て興味があると思います。あなたがHTMLにソースを表示する場合と、例えば、いくつかのテストを持っているために、どのような次はあなた

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

を与えないこと。また、どのようなご入力の内容は次のようになります。

+0

ありがとうthatsは私の問題UTF-8です:) – ParisNakitaKejser

+0

よく試してみてくださいhttp://jsfiddle.net/KLzYf/9/ checkmate 〜によって – Vixxs

1

はこれを試してみてください。

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

は2つの文字があると、それは言う長=私はあなたがいずれかの余分なスペースを使用するか、その文字のいずれかの側だと思う2

1

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

これは正しく動作します。

+0

私はあなたがスペースを欠場したと思います:-) –

関連する問題