REFEXPでの空白チェックについて

[上に] [前に] [次に]
みつお 2000/03/07(火) 18:27:45
 以下のコードはある項目に数値以外のものが入ったらエラーメッセージを出すようにしているのですが、これだとなにも入力しないでもエラーメッセージが出てしまいます。未入力はOKにして、入力されたら数値だけのチェックにしたいのですが、なにかご存知でしたら是非教えて下さい。
(環境)
 OS WIN95
ブラウザ IE5

var re=new RegExp("[0-9]","i");
  var strnis=document.fm.smainnyscd.value;
  if(re.test(strnis)==false){
   window.alert("この項目は数字で入力して下さい");
   return false;

Ichi 2000/03/08(水) 07:14:16
単に、
if(!re.test(strnis) && strnis != '')
でいいと思います。
あと、re.test(strnis)==falseよりは、
!re.test(strnis) の方がいいと思います。
(間違いではありませんし、この書き方が好きならばそれでいいのですが)

みつお 2000/03/08(水) 10:06:52
[[解決]]
  ICHIさんご意見有難うございました。if(!re.test(strnis) && strnis != '')でできるようになりました。
 「re.test(strnis)==false」を「(!re.test(strnis)」というふうに書けるんですね。感嘆符をこのようにつかえるのですね。勉強になりました。ほかのコマンドにも「!」はつかえるのですか?

Ichi 2000/03/09(木) 06:27:33
'!'は、論理演算子(真偽を処理する演算子)のひとつで、論理NOTという単項演算子です。
被演算子の真偽を反転させます。

わかりやすく言えば、!exprとすることによって、もしexprが真(true)
なら偽(false)を、偽なら真を返します。
> ほかのコマンドにも「!」はつかえるのですか?
値をもつ式になら何にでも使えますが、true,falseを値として
もつ式以外に使っても、あまり意味を持ちません。

# 意味が無いわけではないんですけどね...
# 便利なこともあります

[上に] [前に] [次に]