• 締切済み

フォームで半角文字の入力のみ許可する方法について

Javascriptの初心者です。フォームのtext入力で半角文字だけを入力できるようにしたいのですが、webから入手したサンプルソースで理解できない部分があります。以下のソース(抜粋)で、"%nFF"と"0xFF60"とは何を示しているのでしょうか。尚、変数doreに入っているのはescape()された値です。 if(dore.indexOf("%uFF") != -1 && '0x' + dore.substring(2 , dore.length) < 0xFF60)kekka++; else if(data[i].match(/\W/g) != null && dore.length == 6)kekka++;

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

ユニコードの0xFF00~0xFF5F(全角英文字+記号)に該当するかってところみたいですが、 例えば、以下みたいなかんじでどうですか? もうちょっと絞った方がいいですが・ <script type="text/javascript"> <!-- function hanCheck(txt){ var str=txt.value; for(i=0;i<str.length;i++){ if(str.charCodeAt(i)>255){ alert("半角でない文字が含まれる"); } } } //--> </script> <form name="FORM1"> <input name="TEXT" type="text" value="" size="20" onchange="return hanCheck(this)"> </form>

zekkocho
質問者

補足

ご回答ありがとうございます。indexOf("%uFF") のところで、「%uFF」が何を示しているのかが分かりません。ネットで検索しているのですが手がかりがつかめません。日本語文字列をescape()でLitin1コードに変換すると、最初にくるコードのようなのですが。

関連するQ&A