VBS で正規表現を使用する
Javascript でおなじみの正規表現を VBScript で使用する方法です。
正規表現による Visual Basic Scripting Edition (VBScript) の機能強化で、細かな条件で検索や処理が可能になります。
詳細は下記マイクロソフトページをご覧下さい。
http://www.microsoft.com/japan/msdn/columns/scripting/scripting051099.asp
VB の場合、Microsoft VBScript Regular Expressions への参照を追加する必要があります。
文字列の中に半角英数字以外が含まれているかどうか確認する関数の例
- Function blnCheck(strLen)
- Dim objRE
- Set objRE = new RegExp
- objRE.IgnoreCase = True
- objRE.pattern = "[^a-zA-Z0-9]"
- blnCheck = objRE.Test(strLen)
- Set objRE = Nothing
- End Function
2行: 変数の宣言 − VB VBA の場合は、「 Dim objRE As Object 」
3行: 正規表現の作成
4行: 大文字と小文字の区別をしない − デフォルトは False なので、区別する場合はこの行は不要
5行: 正規表現を指定 − この場合は「a 〜 z、A 〜 Z、0 〜 9 のいずれにもマッチしない」
6行: objRE.Test(strLen) で条件にマッチする場合は True、そうでない場合は False が戻る
7行: オブジェクトを解放
Ex.
- If blnCheck("ABCあabc123") Then
- Msgbox "英数字以外が含まれています。"
- End If
- If blnCheck("ABCabc123") Then
- Msgbox "英数字以外が含まれています。"
- End If
1〜3行の場合、エラーメッセージが表示されます。
5〜7行の場合、エラーメッセージは表示されません。
メールアドレスの整合性を確認する関数の例
- Function blnMailCheck(strLen)
- Dim objRE
- Set objRE = new RegExp
- objRE.IgnoreCase = True
- objRE.pattern = "^([\w]+)([\w\.-]+)@([\w_\-]+)\.([\w_\.\-]*)[a-z][a-z]$"
- blnCheck = objRE.Test(strLen)
- Set objRE = Nothing
- End Function
4行: 大文字と小文字の区別をしない
5行: チェック内容
すべてアルファベットおよび有効な記号で構成されている
@ が必ず含まれる
@ の前に有効な記号が記載されている
@ の後ろもメールアドレスで有効な記号で構成されている
@ の後ろの文字列中に少なくともドットが1文字は記載されている
最後のドットのあと、アルファベットが2文字以上で終わっていること
6行: 正しい場合は True、不正の場合は False が戻る
VBScript とは
Visual Basic (VB) のサブセット(簡易版)で、 マイクロソフト社製のスクリプト言語である。 Microsoft Windows上やInternet Information Server(IIS)上で動作する。
VBScript (Microsoft Visual Basic Scripting Edition) は VisualBasicの構文を真似てつくられた、 Microsoft Windowsのネイティブ スクリプト言語である。ランタイムとして、ASP や WSH があり、 主な用途として、
- Active Server Pages (ASP) などを使用したサーバサイドスクリプティング処理
- Windows Script Host (WSH) を利用したWindows上でのネイティブ・スクリプト
- Internet Explorerを使用したクライアントサイドスクリプティング処理
- HTML Applications(HTA)アプリケーション
が挙げられる。 ただし、WWWクライアントスクリプトとしては、対応するブラウザが Windows版のInternet Explorerだけであり、2005年現在ではほとんど使われていない。
HTAやASP、HTML中に組み込まれることが多いが 単体のスクリプトファイルとしておかれる場合、 拡張子は通常.vbsを使用する。