チェックは、正規表現でやれば、いろんな言語でいけそうなので、正規表現で、いろんな値をチェックする方法を考える、シリーズ「正規表現でのチェック方法を考える」
前回は、正の整数を考えたので、今回は、整数(負の数も含む)と、ついでに、通貨記号についても考えてみたいと思います。
なお、このシリーズにおいて、説明文中の¥は、断りがなければ、半角の円マーク(ないしは、バックスラッシュ)に変えてください(入力が面倒なので全角にしています)
■負の数もふくむ場合
前回、整数を、
/^(0|[1-9]¥d*)$/
と表現しました。ここで、-の記号をつけるわけですが、
-0
っていうのは、へんです。ふつう、0には、符号をつけません。
そこで、数字のほうだけに、-が、1個あってもよい(つまり?)として、
/^(0|-?[1-9]¥d*)$/
としておきましょう。
■通貨記号
ここでは、円か、ドルとします。
これが、あっても、なくてもよい。
かつ、¥0っていうのは、存在するので、
0と、それ以外の数字の前に、通貨記号をつけ、
/^(¥¥|¥$)?(0|-?[1-9]¥d*)$/
としておきましょう。
なお、他の通貨があれば、¥¥|¥$のあとに、
| をかいて、そのあと、通貨記号をかいていけばOK
■JavaScriptサンプル
こんなかんじ
<HTML> <HEAD> <TITLE>JavaScriptテスト広場</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function load() { } function mycheck(val) { if (val.search(/^(¥¥|¥$)?(0|-?[1-9]¥d*)$/) != -1 ) { } else { alert("エラー"); } } --> </SCRIPT> </HEAD> <BODY onload="load()"> <FORM NAME="buf"> <INPUT NAME="Text1" TYPE="hidden"> </FORM> <FORM NAME="zikko"> <INPUT NAME="text1" TYPE="TEXT"> <INPUT NAME="button1" TYPE="BUTTON" VALUE="実行" onclick=mycheck(text1.value)> </FORM> </BODY> </HTML> |
(上記< > ¥は、本当は半角です)
こんかいはここまで