入力された文字のカウントをする際、
charCodeAt()
で1文字ずつ判別して、半角なら◯文字分、全角なら◯文字分とするコードですが、
if( (chr >= 0x00 && chr < 0x81) || (chr === 0xf8f0) || (chr >= 0xff61 && chr < 0xffa0) || (chr >= 0xf8f1 && chr < 0xf8f4) )
の意味がよくわからないです。
charCodeAt()
メソッドはUTF-16コードユニットを表す 0 から 65535 までの整数を返すのでは?
例えば、a という文字列なら charCodeAt()での返り値は 65
0x00,0x81,0xf8f0... この多分UTF-8の文字列と比較しているのがよくわからないのですが
JavaScript
1for(var i=0; i<str.length; i++){ 2 var chr = str.charCodeAt(i); 3 if( (chr >= 0x00 && chr < 0x81) || 4 (chr === 0xf8f0) || 5 (chr >= 0xff61 && chr < 0xffa0) || 6 (chr >= 0xf8f1 && chr < 0xf8f4) ) 7 { 8 //半角文字 9 } else { 10 //全角文字 11 } 12}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/09 07:13