- PR -

正規表現

1
投稿者投稿内容
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-03-20 10:53
  VB.NETで開発していますが。 
str="1234" の場合、下記の半角数値入力チェック関数のIF文の中に
  入ってしまうのですが、なぜでしょうか?

Private Function CheckNumber(ByVal str As String)

CheckNumber = True
If IsMatch(str, "0-9") = False Then
Lbl_Message.Text = "半角数値を入力してください。"
CheckNumber = False
End If

End Function
すなめり
常連さん
会議室デビュー日: 2003/01/29
投稿数: 37
お住まい・勤務地: 横浜
投稿日時: 2003-03-20 11:44
正規表現にも色々文法があったりします。私の手元にはVB.NETのマニュアルがないので確実な事は言えないのですが、一般的と思われる文法で書いてみます。

> IsMatch(str, "0-9")

これでは、"0-9"という文字列にしかマッチしないと思うのです。
IsMatch(str, "[0-9]+")
なら、一文字以上の数字列にマッチする筈です。
4桁の数字列でしたら
IsMatch(str, "[0-9]{4}")
でもいいと思います。
なか-chan@最愛のiMac
ぬし
会議室デビュー日: 2002/07/17
投稿数: 385
お住まい・勤務地: 和光市・世田谷区
投稿日時: 2003-03-20 11:47
damepgさんこんにちは。

> str="1234" の場合

str="12340-9" の場合だとマッチしそうです。

> If IsMatch(str, "0-9") = False Then

"[0-9]"か、"\d"だと思います。
なか-chan@最愛のiMac
ぬし
会議室デビュー日: 2002/07/17
投稿数: 385
お住まい・勤務地: 和光市・世田谷区
投稿日時: 2003-03-20 11:54
"[0-9]"か、"d"だと思います。

すみません。.... "[^0-9]") = True じゃないとだめかも...
(0〜9以外にマッチしているとき)

VB.NET使ったこと無いので詳しくはわかりません...m(__)m
1

スキルアップ/キャリアアップ(JOB@IT)