• ベストアンサー

Regex.IsMatchメソッドで全角チェックしたい。

こんにちわ。 いまVB.Net2003でプログラミングしている者です。 画面の入力チェックで, 入力値に全角カナを含むときエラーメッセージを出したいのですが, どうすればよいでしょうか? 自分で調べたところ, Regex.IsMatchメソッドでつぎのようなコードにすると, 半角チェックはできました。 If (Regex.IsMatch(txtHoge.Text, ".*[ヲ-゜].*") = True) Then ところが全角を含むかどうかのチェック方法がわかりません。 教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

.NETで使える正規表現にカタカナをあらわすプロパティというのがありますので、 それを使ってチェックできます。 imports System imports System.Text.RegularExpressions Module RegTest1 Sub Main dim str1 as String dim str2 as String dim str3 as String dim pat as Regex str1 = "コンニチワ" '← ここは半角かなが入ってます str2 = "コンニチハ" str3 = "こんにちは" pat = new Regex("^\p{IsKatakana}+$") If pat.IsMatch(str1) then Console.WriteLine("match:" & str1) End if If pat.IsMatch(str2) then Console.WriteLine("match:" & str2) End if If pat.IsMatch(str3) then Console.WriteLine("match:" & str3) End if End Sub End Module 実行結果: match:コンニチハ

tatsurou
質問者

お礼

sakusaker7さん 回答ありがとうございます。 教えて頂いた方法でできました。

関連するQ&A

  • 全角漢字の入力チェック

    Javascriptにて、Formのテキストフィールドの内容を入力チェックしているのですが、「全角漢字」「全角かな」「全角カナ」「半角英数字」 のみを許可して、それ以外の入力文字をいれるとエラーになるような 関数を作りたいのですが、全角記号や半角記号をチェックするには どうしたらよいのでしょうか。

  • Visual Basic で全角カナチェック

    Visual Basic で全角カナチェックがしたいです。 ネットで調べたところ、 Regex.IsMatch(p01, "^[ァ-ー]+$") この記述で全角カナのみOKは出来ました。 これを少し変更し、 全角カナと全角スペースと全角数字はOKとする というふうにしたいのですが、行き詰まっています。

  • 正規表現でE-mailアドレス形式チェックの仕方を教えてください!

    C++でRegex::Ismatchメソッドを使いメールアドレス形式であるかのチェックをしたいのですが、 どうもうまくいきません。。 MSDNにVB用とC#用のサンプルはあったのですが、正規表現をC++用に変換できずに困っています。 ★VB Regex.IsMatch(strIn, ("^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$") ★C# Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); どなたか分かる方ご教授ください。 よろしくお願いします。

  • 正規表現を使った全角文字のチェック。

    現在入力項目が全角文字OR半角スペースかどうかチェックする、スクリプトをBASP21を使って下のようなコードを作っています。VBSで色々試しましたができません。 本番では、BASAP21が使えないので困っています。 処理としては、入力値が、シフトJISの全角に当たる文字コードかどうかチェックしています。 BASP21を使わない方法で可能でしょうか? また可能であれば方法を教えてください。 環境:WindowsXPSP2 VBScript IIS LOCALHOST上で実行しています。 例: str = " あいうえおア " Set bobj = CreateObject("basp21") output = bobj.Match("/^(?:[\x81-\xEF][\x40-\xFC]|\x20)+$/",str) IF output = 0 THEN Response.Write("全角で入力して下さい。") END IF

  • テキストファイルの全角文字のチェック

    半角でテキストデータで作成していたところ、一部誤って、全角で作成してしまいました。ファイル数が多いために1つ1つチェックは難しいので、VBでファイル毎に全角文字が含まれていないか、チェックしたいのですが、可能でしょうか?よろしくお願いします。

  • ifでの条件分岐

    .net vb2005でプログラミングしています。 2つのテキストボックスがあり、その名前をtextbox1,textbox2 , 変数の代入をtx1、tx2とします。 どちらも半角数字で300までしか入力できません。 さらに、tx1に入力されるとtx2も必ず入力される必要があります。 tx1が未入力の場合はtx2も未入力である必要があります。 最初にtx1の文字数が0か確認し、入っている場合、居ない場合と ifで条件分岐させましたが うまくいきません。。 アドバイスいただきたいと思います。 Dim tx1,tex2 As Integer If Len(TextBox1.Text) = 0 Then flg = 0 ElseIf Regex.IsMatch(TextBox1.Text, "^[0-9]{1,3}$") Then tx1= Val(TextBox1.Text) tx1 = Convert.ToInt32(iptx5) '文字列をInteger型(数字型)に変換 Else MsgBox("300までの数字で入力して下さい", vbCritical, "入力エラー") TextBox1.Clear() Exit Sub End If If tx1 > 255 Then flg = 1 MsgBox(ipm_msg2, vbCritical, "入力エラー") TextBox1.Clear() End If '********************************************************************** If Len(TextBox1.Text) = 0 Then flg = 0 exit sub ElseIf Regex.IsMatch(TextBox2.Text, "^[0-9]{1,3}$") Then tx2 = Val(TextBox2.Text) tx2 = Convert.ToInt32(tex2) Else MsgBox(ipm_msg1, vbCritical, "入力エラー") TextBox2.Clear() Exit Sub End If '**255以上なら入力不可** If iptx6 > 255 Then flg = 1 MsgBox(ipm_msg2, vbCritical, "入力エラー") TextBox6.Clear() Exit Sub End If

  • 全角カタカナのチェック。

    VB2005環境です。 DataGridViewに、全角カタカナしか入力できない列を作りたいと 考えています。 CellEnterのイベントで、ImeModeをKatakanaにしていますが、 これでは変換することでカタカナ以外も入力が可能です。 テキストボックスのように、InputModeが指定できれば良いの ですが…。 全角カタカナかどうかチェックする方法、強制的に全角カタカナしか 入力できなくする方法はないものでしょうか? ご教授ください。

  • Javascript 全角カナ+半角スペース+全角スペースの正規表現について

    初歩的な質問をしてすみません。 一応、自分でも試行錯誤で if (str.match(/[^ア-ンー\- ]+/g)){ alert("フリガナの項目を「全角カタカナ」のみで入力して下さい。"); } という条件を作ってみたのですが、半角スペースを入力したらTrueとなってしまいます。 全角カナ+半角スペース+全角スペース以外はFalseとなる正規表現を教えていただけないでしょうか。 以上、よろしくお願いします。

  • VB2005のRegexで全角文字のマッチ

    VB2005のRegexで、インターネットのソースコードを取得し”次の10件"というキーワードの位置を取得しようとしていますが、どうもソースコードの時点で、全角文字(2バイト文字)が認識されていないようです。どうすれば、マッチできるでしょうか?教えてください。 仮に、下記のルーチンに、Debug.Print(inputString)を入れて表示させてみると、全角の表示がされていません。 よろしくお願いいたします。 Sub DumpHrefs(ByVal inputString As String) Dim r1 As Regex Dim m1 As Match r1 = New Regex("次の10件≫") m1 = r1.Match(inputString) While m1.Success Debug.WriteLine("次の10件" & " at " & m1.Groups(1).Index.ToString())  m1 = m1.NextMatch()  End While End Sub

  • テキストボックスの入力値チェックについて

    テキストボックスに入力した値に対して半角カナで入力されているかのチェックをコマンドボタン押下時に行いたいのですが、 どのようなコードを書けばよろしいのでしょうか? ついでに、半角数字のみのチェックも教えてください。