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

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

正規表現でのチェック方法を考える-その10 文字数混在と、何文字(何桁)指定

2008-04-30 17:35:44 | 正規表現

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

いままで、文字と数字のチェックをやってきたので、今回は、混在についてやります。
また、桁数、文字数について書いていなかったかもしれないので、書いておきます。

なお、このシリーズで、特に断りのない限り、全角の¥は、本当は半角の円マーク(ないしはバックスラッシュ)です。




■課題

こういう学生番号があったとします。

A12-9876J


1文字目   A-Zの英字1文字 - 学部学科を表す
2-3文字目 数字2桁     - 入学年度(08=>2008年入学)
4文字目   -(ハイフン)  - 固定
5-8文字目 数字4桁     - 学生固有の番号
9文字目   A-Zの英字1文字 - チェックデジットをアルファベットに変換



で、このチェックをします。

今回は、アルファベットがA-Zなので[A-Z]となり、数字のところは\dになります。
あと、桁数が決まっているので、桁数指定です。




■桁数指定

桁数は、{数字}を書くと、その数分、前にかかれたものが続くことになります
¥d{2}だと、2桁分、¥d=数字が続きます。

なお、何桁から何桁の間という場合は、{開始,終了}のように、,で区切って書きます。
2桁から6桁なら{2,6}
未入力から、5桁=5桁以下なら{0,5}
みたいなかんじです。




■ソース

ということで、課題は、
/^[A-Z]¥d{2}-¥d{4}[A-Z]$/
ということになります。これをもとに、プログラムしたのがこちら

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

function mycheck(val)
{
	if (val.search(/^[A-Z]¥d{2}-¥d{4}[A-Z]$/)	!=	-1 )
	{
		alert("OK");
	}
	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>

(上記 ¥ < > は、本当は半角)




■ということで・・・

 このシリーズはとりあえずいったん終わりとします。

 ほんとうはあと、各言語における正規表現の書き方というのがあるのですが、
それについては、気が向いたらやります。

で、今回のシリーズについてまとめたのが、

ここ http://www.geocities.jp/xmldtp/index_check.htm

のページです(エイプリールフールのときに使ったページ。
ちゃんと、今回正規表現が埋まっています)。


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Whatが目標、戦略で、Howが戦... | トップ | 修正可能なシステム その5... »
最新の画像もっと見る

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