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を値として
もつ式以外に使っても、あまり意味を持ちません。
# 意味が無いわけではないんですけどね...
# 便利なこともあります
[上に]
[前に]
[次に]