- - PR -
JavaScript上での入力禁止文字チェックについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-04-11 22:30
JSP画面で、入力された文字に関して、文字コード一覧のここからここまでの
文字を入力可能/不可とするチェックをJavaScriptで考えています。 (文字はcharset=Shift-JISです。) 下記のようなコードを書いてみたのですが、 (この場合、文字コード一覧の「亜 唖 娃 阿 哀 愛 挨 姶 逢 葵 茜 穐 悪 握 渥」 までの範囲をOKとするチェック) 例えば"岡"という漢字もOKとなってしまいます。 JavaScript上で文字をcharsetで明示的に指定し、バイト変換して文字コードから 各々の文字をチェックする事は出来ないのでしょうか??(Javaのように・・・) ※ どなたか、ご存知の方おられましたらご教示の程お願い致します。 function ckTest( text ){ for (i = 0; i < text.value.length; i++) { ok = text.value.substring(i, i+1); if (ok >= "亜" && ok <= "渥") { alert( "OKです。"); return true; }else{ alert( "「亜〜渥」以外の入力はできません。\n" + "あなたの入力した値=" + ok + " は不正です。"); return false; } } } _________________ | ||||
|
投稿日時: 2005-04-12 06:07
つばさです。
以下のURLを参考にされてはいかがでしょうか。 http://www.tohoho-web.com/js/string.htm#StrCode 以上です。 | ||||
|
投稿日時: 2005-04-12 16:01
つばささん、ご教示ありがとうございました。
教えて頂きましたURLで、JavaScriptのstring.charCodeAt(n)で Unicodeの10進数で入力した文字のコードを取得出来ることを確認しました。 ASCII 文字や、ひらがな、カタカナ、全角英数記号、全角記号などは 下記のURLを参考にして、判断出来そうなのですが、漢字コードに関しては どのように判別すれば良いかご存知でしょうか??? 【参考URL】 http://www.javable.jp/notes/java/unicode5.html ※ 漢字に関しては、Unicodeの10進数では、例えば下記のように 定義されています。 亜 : 20124 亝 : 20125 亞 : 20126 亟 : 20127 ・・・ unixのkanjiコマンドで出力される順で、バイト配列で一文字ずつ Shift-JISコードを判別したいのですがJavaScriptでは無理なのでしょうか? (色々Webで調べているのですが、なかなか分かりません。) _________________ | ||||
|
投稿日時: 2005-04-12 16:30
escape 関数などどうでしょうか。
| ||||
|
投稿日時: 2005-04-12 16:52
インギさん、アドバイスありがとうございます。
escape関数も試してみました。 function ckTest01( text ){ for (i = 0; i < text.value.length; i++) { ok = text.value.substring(i, i+1); c1 = escape(ok); alert(c1); } } 【出力結果】 ・「弌」→ %u5F0C ・「丐」→ %u4E10 escape関数は、文字をUTF-16のコードで出力してくれるらしいです。 ただ、Unicodeのコード一覧を見て見ると、漢字がコード順で並んで いないように私は思います。 【参考にした、UnicodeのURL】 http://ash.jp/code/unitbl22.htm 私は、入力された文字がコード表のfrom〜toまでの文字をOKとする チェックを作りたいのですが、Unicodeの漢字のマッピングは定義されて いない部分が多く、from〜toで指定してあげる事が困難と思っています。 最悪、許容する漢字のUnicodeのコードを配列に持たせてチェックして マッチしなかったらNGなる事をしなければならないのかと思っています。 そもそもUnicodeは漢字は並んでコードとしてマッピングされているもの なのでしょうか? 私の知識不足であれば申し訳ないです。 継続して調べております。 _________________ | ||||
|
投稿日時: 2005-04-12 17:08
文字それぞれに一意のコードが割り当てられているんですから、 そりゃ、並んでいるものですよ。 ただし、JIS配列とは並びが違ってます。 そういうわけで、UnicodeとJISのコード変換を行うエンジンは、 ばかでかい変換テーブルを備えているらしいです。 | ||||
|
投稿日時: 2005-04-12 17:16
Unicodeのマッピング一覧のURLを探しました。
↓ http://www.rikai.com/library/kanjitables/kanji_codes.unicode.shtml このコード一覧だと、escape関数で取得したunicode16進で 許容する漢字をfrom〜toでチェックするのは困難です。 それとも、Unicodeの漢字はコード体系として10進ではコードとして 並んでいろものなのでしょうか? (Webで探しても、中々見つかりません・・・) _________________ |
1