C1TextBoxコントロールでは、MaskInfo.RegexpEditMaskプロパティを使用することにより、正規表現によるマスク編集をサポートします。正規表現を使用することで、より複雑なマスク書式による検証が可能です。
正規表現によるマスク編集で使用可能なキーワードは以下の通りです。書式指定子が全角か半角かで、制御対象となる文字(全角/半角)が決定します。
|
半角 |
全角 |
出力例 |
|---|---|---|
| \A | \A | 英大文字に一致します。[A-Z] と同等です。 |
| \a | \a | 英小文字に一致します。[a-z] と同等です。 |
| \D | \D | 数字に一致します。[0-9] と同等です。 |
| \W | \W | 単語文字に一致します。[a-z A-Z 0-9] と同等です。 |
| \K | \K | カタカナ(促音・拗音の小書き表記なし)に一致します。 |
| \H | \Z | すべての半角文字に一致します。 |
| \J | ひらがな(促音・拗音の小書き表記あり)に一致します。 | |
| \N | \N | カタカナ(促音・拗音の小書き表記なし)に一致します。 |
| \G | ひらがな(促音・拗音の小書き表記なし)に一致します。 | |
| \T | サロゲート文字に一致します。 |
また、以下に示す補助的なキーワードと組み合わせて使用することができます。
| キーワード | 説明 |
|---|---|
| [] | []内の文字のどれか1つにマッチすることを表します |
| ^ | 次に続く文字をサブセットから除外することを表します。 |
| - | 連続する文字範囲を表します。 |
| {} | 直前のキーワードの繰り返しを表します。 |
| * | 直前のキーワードの0回以上の繰り返しを表します。{0,} と同等です。 |
| + | 直前のキーワードの0回以上の繰り返しを表します。{1,} と同等です。 |
| ? | 直前のキーワードの0回または1回の繰り返しを表します。{0,1} と同等です。 |
以下に、正規表現による書式の設定および表示例を示します。
|
書式 |
表示例 |
説明 |
|---|---|---|
| \Z{0, 50} | あア漢1Aa | 0文字以上、50文字以下のすべての全角を表します。 |
| \D{3, 5} | 1234 | 3文字以上、5文字以下のすべての半角数字を表します。 |
| [1-3,a-c,A-C]{10} | 123a | 10文字の1,2,3,a,b,c,A,B,Cを表します。 |
| [A-Z]{0, 65535} | ABCDE | 半角英大文字を表します。\Aと同等です |
| [H^a-z]{0, 65535} | 12ABアイウ | 英小文字を除くすべての半角文字を表します。 |
| [^\T]{0, 65535} | あア漢1Aa | サロゲート ぺア文字を除くすべての文字を表します。 |
以下に、正規表現によるマスク書式を指定するサンプルコードを紹介します。
| Visual Basic |
コードのコピー
|
|---|---|
| Private Sub Form1_Load(sender As Object, e As EventArgs) C1TextBox1.MaskInfo.RegexpEditMask = "[1-3,a-c,A-C]{10}" End Sub |
|
| C# |
コードのコピー
|
|---|---|
| private void Form1_Load(object sender, EventArgs e) { c1TextBox1.MaskInfo.RegexpEditMask = @"[1-3,a-c,A-C]{10}"; } |
|
「1234」と入力しようとすると、「123」は入力されますが、「4」は入力されません。
