2010,09,07, Tuesday
vbscriptのIsNumeric関数は、変数が数値かどうかのチェックをしたいときに使います。
実はIsNumericは、全角の数字であってもTrueを返す性質があります。
それが便利なときもありますし、不便なこともあるでしょう。
そこで半角の数字のみTrueを返す方法を考えてみます。
(1)変数に全角が含まれているかどうかチェックし、全て半角のときのみIsNumericを使う
まず思いつく方法ですが、そのための関数は用意されていないので、少し面倒です。
下記のサイトが参考になります。
VBScriptで全角文字と半角文字を判別する方法を教えてください - 人力検索はてな
(2)BASP21で変数の中身を全て半角にする
例えば変数の中身が「1234」だったら「1234」にしてしまうのです。
全角の数字のままだと処理に困るけど、エラーではじきたくない、という時に使えるでしょう。
ASPでのスクリプトは以下の通りです。
hoge="1234"
'BASP21で変換
Set objBASP=Server.CreateObject("basp21")
hoge=objBASP.StrConv(hoge,8)
Set objBASP=Nothing
'数値チェック
If IsNumeric(hoge)=true Then
Response.Write "数値です"
End If
非常にシンプル。BASP21に感謝ですね。
BASP21は他にも便利な関数をいくつも備えたコンポネントです。
ASPを使う方はぜひ導入しておきましょう。
BASP21 DLL
実はIsNumericは、全角の数字であってもTrueを返す性質があります。
それが便利なときもありますし、不便なこともあるでしょう。
そこで半角の数字のみTrueを返す方法を考えてみます。
(1)変数に全角が含まれているかどうかチェックし、全て半角のときのみIsNumericを使う
まず思いつく方法ですが、そのための関数は用意されていないので、少し面倒です。
下記のサイトが参考になります。
VBScriptで全角文字と半角文字を判別する方法を教えてください - 人力検索はてな
(2)BASP21で変数の中身を全て半角にする
例えば変数の中身が「1234」だったら「1234」にしてしまうのです。
全角の数字のままだと処理に困るけど、エラーではじきたくない、という時に使えるでしょう。
ASPでのスクリプトは以下の通りです。
hoge="1234"
'BASP21で変換
Set objBASP=Server.CreateObject("basp21")
hoge=objBASP.StrConv(hoge,8)
Set objBASP=Nothing
'数値チェック
If IsNumeric(hoge)=true Then
Response.Write "数値です"
End If
非常にシンプル。BASP21に感謝ですね。
BASP21は他にも便利な関数をいくつも備えたコンポネントです。
ASPを使う方はぜひ導入しておきましょう。
BASP21 DLL
コメント
コメントする
コメント受付を停止します。海外からスパム投稿が多いため。
この記事のトラックバックURL
http://kodawari.sakura.ne.jp/blogn/tb.php/2
トラックバック
Tweet |
TOP PAGE △