goo blog サービス終了のお知らせ 

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

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

正規表現でのチェック方法を考える-その5 カンマつき数字。

2008-04-14 18:35:19 | 正規表現

 チェックは、正規表現でやれば、いろんな言語でいけそうなので、正規表現で、いろんな値をチェックする方法を考える、シリーズ「正規表現でのチェック方法を考える」

 今、数字関係をやっています。今回は、カンマつき数字です。

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




■考え方

まず、はじめのカンマの前とあとで考えましょう(カンマがないものは、カンマの前だけを考えます)

・カンマの前は、
0のつぎ1,2,3,4・・・10、11、12・・・100、101・・・999です。

ってことは、いつもどおり、0を分けましょう。

そうすると、一番上は、1から9までの数です。
1桁の場合は、そのあとありません。
2桁だと、数字1桁が後につき、
3桁だと、数字2桁が後につきます。

これをまとめると、

0|[1-9]¥d{0,2}

となります。


・カンマの後は、
 カンマのあと、数字かならず3桁の並びです。
 これが、あるか、もしくはこの塊がつづきます。つまり

 (¥d{3})*

です。

・まとめて書くと
/^(0|[1-9]¥d{0,2}(,¥d{3})*)$/





■ソースコード

 ってことで、これをプログラムの中に入れると、こんなかんじ

<HTML>
<HEAD>
<TITLE>JavaScriptテスト広場</TITLE>
<SCRIPT LANGUAGE="JavaScript"> 
<!--
function load()
{
}

function mycheck(val)
{
	if (val.search(/^(0|[1-9]¥d{0,2}(,¥d{3})*)$/)	!=	-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でシェアする
« 修正可能なシステム その2... | トップ | 情報処理試験ぐらいのお勉強... »
最新の画像もっと見る

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