WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:入力文字のチェック

0:[投稿] もり [2003/12/11 10:39 ][環境:IE6 XP W2K]

現在以下のようなコードで入力チェックを行っているのですがこれだと/が弾かれてしまいます。
/を許可したい場合はどうすればいいのでしょうか?

if (hankaku.match(/[^ア-゚,^(-),^ヲ,^A-Z,^0-9,^ー, ]/)) {
  alert("半角英数カナ大文字以外の文字は入力出来ません");
    document.sample.T7.focus();
                     return false;
        }


1:[関連] もり [2003/12/11 15:14 ]

(/[^ア-゚,^(-),^ヲ,^A-Z,^0-9,^ー, ]/)を
(/[^ア-゚,^(-),^ヲ,^A-Z,^0-9,^ー,^/. ]/)にすることで上記の
/が弾かれるということはなくなりましたが

小文字のaからzまでも入力できてしまっていました(変更前から)

小文字のa-zまでを弾くにはどうしたら良いのでしょうか?


2:[回答] やちまた [2003/12/11 15:45 ]

チェックする時に、大文字小文字で区分けしないという
プロパティ指定があったと思います。
たしか 『 i 』 だったかと。

若しくは
『その指定を行わないでどちらも記述する』
でも可能ですね。


3:[関連] もり [2003/12/11 16:01 ]

やって見ました。。。がだめでした

やり方が悪いのかな?

a-z,a−z,A−Zはアラートが出るが
A-Zはアラートが出ないようにしたいのです。


4:[完了] もり [2003/12/11 16:18 ]

すいません 出来ました☆
以下のように一文で書かず二つに分けたらうまく動いてくれました

if (hankaku.match(/[^ア-゚,^(-),^ヲ,^A-Z,^0-9,^ー,^/.^・.]/)) {
  alert("半角英数カナ大文字以外の文字は入力出来ません");
            document.sample.text1.focus();
                       return false;
        }
if (hankaku.match(/[^a-za-z, ]/)) {
  alert("半角英数カナ大文字以外の文字は入力出来ません");
            document.sample.text1.focus();
                       return false;
        }

色々とご迷惑おかけしました。

iも初めて知ったので今後活用させていただきます☆


5:[回答] もり [2003/12/11 16:26 ]

出来てない(泣)

上記だと二回目で宣言していない[ア]や[コ]などのカタカナが引っかかってしまいます・・・

なんとかまとめて書けないものですかね?


6:[完了] もり [2003/12/11 16:43 ]

今度こそ!完璧に出来上がりました☆
何度も何度も板汚しですいません
以下が完成品です
if (aiteh.match(/[^ア-゚,^(-),^ヲ,^A-Z,^0-9,^ー,^/.^・.]/,/[a-za-z,]/)) {
  alert("半角英数カナ大文字以外の文字は入力出来ません");
  document.sample.T7.focus();
  return false;
}
,で区切れました。「出来るかな?」と思ってやってみたら出来ました。いやぁ嬉しい。。。

やまちたさん色々とありがとうございました。


7:[完了] AC [2003/12/11 22:56 ]

そもそも根本的に正規表現が理解できていないようです。
正規表現における[]は、
1. 文字が列挙されている場合、どれか1つの文字にマッチする
/[abc]/ という正規表現であれば、aef,12c,afce などがマッチする
2. /[a-c]/の場合、文字コードがaからcのものがマッチする。
この場合は、/[abc]/と同じ。[c-a]のように指定した場合にどうなるかは不明(誰か教えて下さい)。
3. [の直後に^がある場合は、[]内に指定した文字以外の文字のみマッチするようになる。
それ以外の場所で^が現れた場合は、普通の文字と同様に扱われる。

多分、>>0-5のすべてで","と"^"は通してしまうはず。


8:[完了] [2003/12/12 07:58 ]

>>7
> [c-a]のように指定した場合にどうなるかは不明(誰か教えて下さい)。
ECMA-262 的には SyntaxError が発生することになってます。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World