ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

正規表現でのチェック方法を考える-その3 小数

2008-04-08 18:43:57 | 正規表現

 チェックは、正規表現でやれば、いろんな言語でいけそうなので、正規表現で、いろんな値をチェックする方法を考える、シリーズ「正規表現でのチェック方法を考える」
 前回までで、整数は片付いたので(カンマ付きについては、あとになります)、今回は、小数について考えてみたいと思います。

 なお、このシリーズにおいて、説明文中の¥は、断りがなければ、半角の円マーク(ないしは、バックスラッシュ)に変えてください(入力が面倒なので全角にしています)




■小数について

 小数について考える場合、小数点の前と小数点のあとについて、分けて考えます。
 なお、小数点がないのは、いままでやってきた、整数になります。

 小数点のまえは、いままでどおり、01とかいけないので、それを除いた、

 (0|-?[1-9]¥d*)

 となります。。。と、言いたいところですが、
-0.1
 はありえますので、今回は、0にも符号がつきます。
 そこで、
 
  -?(0|[1-9]¥d*)

 一方、小数点の後は、12.などと、小数点があって、数字がないのはふつう認められないので、
 かならず1個以上は数字が来ることとします。
 ただし、12.0とか、12.010のように、最後が0で終わることはあるので
(12.01を切り捨てた場合、12.0とかき、12としないことも多い。有効範囲を明示したいため)
 ¥d+
 とします。

 結果として

 -?(0|[1-9]¥d*)¥.¥d+

となります(.だけだと、任意の1文字になってしまうので、¥.)。今までの整数とまとめると、
/^(¥¥|¥$)?(0|-?[1-9]¥d*|-?(0|[1-9]¥d*)¥.¥d+)$/
なかんじ。。赤字が、今回の追加部分。




■ソース

いままでの整数とあわせて、こんなかんじ。
<HTML>
<HEAD>
<TITLE>JavaScriptテスト広場</TITLE>
<SCRIPT LANGUAGE="JavaScript"> 
<!--
function load()
{
}

function mycheck(val)
{
	if (val.search(/^(¥¥|¥$)?(0|-?[1-9]¥d*|-?(0|[1-9]¥d*)¥.¥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>





今回はここまで。


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Windows Server 2008、店頭販... | トップ | NTTドコモのシェア、50%を割る »
最新の画像もっと見る

正規表現」カテゴリの最新記事