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」は入力されません。