IsNumeric関数で、半角のみをTrueとしたい
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
| vbscript/ASP/ASP.NET/ASP.NET MVC | 11:34 | comments (0) | trackback (0) |
コメント
コメントする




この記事のトラックバックURL
http://kodawari.sakura.ne.jp/blogn/tb.php/2
トラックバック


  
CALENDAR
S M T W T F S
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30   
<<   09 - 2021   >>
LOGIN
現在のモード: ゲストモード
USER ID:
PASS:
CATEGORIES
ARCHIVES
COMMENTS
TRACBACK
PROFILE
OTHERS
POWERED BY
POWERED BY
ぶろぐん