こんにちは!青木です!
本日は、『正規表現!(第1回)』(http://www.corenext-genexus.com/正規表現!(第1回)/)の続編を書きます。
前回、トランザクション(Transaction)オブジェクトの属性項目の書式を正規表現を用いて定める方法は、大きく分けて以下の2通りあると書きました。
①(ルールで設定)入力が正規表現に一致するか、IsMatchメソッドで調べる
②(プロパティで設定)項目属性の『Regular Expression』プロパティで設定する
①、②どちらを選択するかによって、パフォーマンスの大きな違いはないのですが、どちらか一方で統一するのがいいでしょう。前回は②を扱ったので、ここでは①(ルールで設定)の方法で操作します。
今回は上のトランザクションのEmailアドレスの入力の書式を正規表現で定めます。ルール(Rules)タブに以下のように記述します。
正規表現の部分を解説したいと思います。
[]で囲まれた部分は、[]内部の表現のいずれか一つを指します。最初の[]には、『\w』と『\d』と『_』『-』が入っているので、そのうちの一つとなります。また、『/w』は英字を、『\d』は数字を、表しているので、最初の[]の部分は、『英字か、数字か、-か、_である』ということになります。
その次の『+』は直前の表現を一回以上繰り返すという意味です。よって、この正規表現だと『XXXX@XXX.XXXX(Xは数字、英字、-、_のいずれかで回数に制限はない)』という書式になります。
このままですと、通常は存在しないであろう『_-@-_.__』の様なものは規制されない書式になってしまうので、実際はもっと厳しく規制する必要がありそうです。あくまでユーザの好みではあるのですが、@以下の部分をコンボボックスで選べるようにするなどの制御も考えられます。入力項目の一つだけでも、奥が深いです。
今日はここまでにしたいと思います。
宣言通り続きが書けたので、ホッとしています(笑)
最後までご覧頂きありがとうございました!