入力チェック

[統計] HTMLからXHTMLへの移行を進めていますか?



0   名前: 超初心者 : 2007/03/21(水) 15:30  ID:/dcm4Ik0 sub-x.
 よろしくお願いしいたします。
 質問させていただきます。

【何をしたいのか】
 以下のような条件で実数の入力チェックをしたいです。

 ・整数のみの入力を受け付ける(999)
 ・整数とピリオドの入力を受け付ける(999.)
 ・ピリオドと少数の入力をうけつける(.999)
 ・整数とピリオドと少数の入力を受け付ける(999.9)
 ・ピリオドが一個以上だと受付ない。


【現在の状況】
 ネットで調べてみたところ、正規表現を使用するのではないかということが
 わかり、
           ^[-+]?[0-9]*\\.?[0-9]+$
 という表現でできるのではと実行してみたところ、上手くいきません。

 お力をお貸しください。
 よろしくお願いいたします。
 




1   名前: 超初心者 : 2007/03/21(水) 15:30  ID:/dcm4Ik0 sub-x.
すみません。質問の内容を追加させていただきます。

function Check_num(obj) {
  var str = obj.value;
  if( str.match( /[^0-9.]/ ) ) {
    alert("注意:数値を入れて下さい。");
    return 1;
    }    
  return 0;
}

上記のようなチェックのファンクションをとりあえず作ってみたのですが、やはり
ピリオドが2個以上でもOKになってしまいます。

ピリオドが2個以上だとエラーにしたいのですが、どのようにすればよいでしょうか。

よろしくお願いいたします。

2   名前: 元帥 : 2007/03/21(水) 15:30  [URL]  ID:S60uMIS9 sub-bK
>>1
ピリオドは特殊記号なので文字として利用したいならエスケープする必要があります。
というか>>0で書いたコードの経験が生かされていないような…

下記のコードで、取り敢えず>>0の条件を満たせます。
function Check_num(obj) {
  var str = obj.value;
  if( str.match(/^\d*(\.)?\d*$/) ){
    return 0;
  }else{
    alert("注意:数値を入れて下さい。");
    return 1;
  }    
}

3   名前: 長初心者 : 2007/03/21(水) 15:30  ID:/dcm4Ik0 sub-x.
ありがとうございました!使用させていただきます!

>というか>>0で書いたコードの経験が生かされていないような…
>>0で書いたものはネットで拾ってきただけで、ちんぷんかんぷんでした。
お手数をかけてしまい、すみませんでしたm(_ _)m

きちんと正規表現を調べてみようと思います。

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

一覧へ戻る