• ベストアンサー

入力されたテキストが、全角か半角かをチェックする方法

フォームのテキストボックスに入力された文字が、全角か半角かをチェックする方法ご存知の方居ましたら。教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.3

 基本は1文字ずつ切り出してescape関数に渡し、元の値とescape後の値が等しければ半角、異なれば全角ということになります。  ただし、ブラウザやバージョンによってエンコード方法が異なったり、2バイトコードの数え方が違ったりするので、確実性を求めるなら、ブラウザ/バージョンごとに処理を書いた方がよいでしょう。

参考URL:
http://tohoho.wakusei.ne.jp/js/builtin.htm#escape,http://tohoho.wakusei.ne.jp/js/string.htm#length
sho_ta
質問者

お礼

大変参考になりました。 ありがとうございました。

その他の回答 (2)

  • redbean
  • ベストアンサー率38% (130/334)
回答No.2

Java ではないのですが、参考に Microsoft の開発環境の場合を書きます。 テキストを一旦Asciiコードに変換 してから、文字数とバイト数を比較 します。違っていれば全角が混じって いると判定します。 これならUnicodeであっても対応できます。 同じ機能の関数がJavascriptにあるかどうか は分かりません。

sho_ta
質問者

お礼

ありがとうございました。

  • yuizuian
  • ベストアンサー率42% (103/245)
回答No.1

charAt()等を使って一文字ずつチェックするしかないのではないでしょうか? URLのソースはバイト数で半角全角を分けていますが、 文字コードで判別する方法もあるかと。

参考URL:
http://tohoho.wakusei.ne.jp/lng/199806/98060010.htm
sho_ta
質問者

お礼

参考になりました。 ありがとうございます。