入力規則:半角カナ(ァィゥェォッャュョ除外)と一部記号に限定

入力規則:半角カナ(ァィゥェォッャュョ除外)と一部記号に限定

ルールに従っていなデータは保存させない便利な入力規則。半角カナの設定方法をご紹介します。
入力規則:半角カナ(ァィゥェォッャュョ除外)と一部記号に限定
3
入力規則:半角カナ(ァィゥェォッャュョ除外)と一部記号に限定
Admin
2020/09/02 17:35:37

やりたいこと

「口座名義」(AccountHolder)という項目で口座名義を管理いている。
この項目に入力できる文字を、次のように限定したい。

・半角カナ
・「ァィゥェォッャュョ」(半角カナ小文字)を除外。
・記号では「.」「-」のみ入力可とする。


知っておきたいこと

同じ種類の文字でもさらに使う文字を限定したいときは、JISコードの文字の並びも意識するといいです。
半角カナは「ヲ-゚」で表現されますが、一覧でみると半角カナ文字(「゙」「゚」も含む)すべてを指定していることがわかります。
こちらのサイトからお借りしました。
charset.7jp.net


入力規則の数式

数式の書き方は様々で、答えはひとつではありません。
今回は2つをご紹介します。

IF(ISBLANK( AccountHolder__c ) ,False,NOT(REGEX( AccountHolder__c ,"^[ヲ-゚ .-]+$")) || (REGEX( AccountHolder__c ,".*[ァ-ッ0-9A-Za-zァ-ヴ].*") ))

数式の意味

数式を区切って意味を確認します。

IF( ISBLANK ( AccountHolder__c ) , False,

=もし「口座名義」の項目がブランク(空白)である場合は、計算結果を「False」とする。
=ブランクのときはエラーにはならない。

NOT( REGEX( AccountHolder__c,"^[ヲ-゚ .-]+$" ))

=文字が半角カナではない。
=半角カナではないときはエラーになる。

(REGEX( AccountHolder__c ,".*[ァ-ッ0-9A-Za-zァ-ヴ].*") ))

=文字が「ァィゥェォッャュョ」、数字、アルファベット、全角カタカナで構成されている。
=「ァィゥェォッャュョ」、数字、アルファベット、全角カタカナで構成されている場合はエラーになる。
※半角小カタカナ(「ァィゥェォッャュョ」)の正規表現は「ァ-ョ」ではなく、「ァ-ッ」である。


||

または(OR)
||について、Salesforceのページを引用させていただきます。

◇Salesforce Developers>開発者ドキュメント>Apex開発者ガイド>式の演算子

というわけで、Aの式は項目がブランクの場合と半角カナ(半角カナ小文字や記号などを含む)であるかを先に確認し、次に小文字であるか、他の文字が使われていないか確認している数式になります。



NOT(REGEX( AccountHolder__c , "^[ヲ. ー-゚]*$"))

数式の意味

^[ヲ. ー-゚]*$

=「ァィゥェォッャュョ」以外の半角カナ文字と、「.」「-」で構成されている文字列。
これに NOT を付けているので、この文字列と一致しない場合はエラーとなる。

gilde tech(for Salesforce)」に入会しませんか?
登録すると、「gilde tech」に掲載されているSalesforceのノウハウを全部閲覧できるだけでなく、自分が知っている知識を発信し、他の会員と交流することもできます。
またSalesforceの知識習得に役立つイベント情報も得ることができます。
是非ここで得た知識を業務に活かしてください!
3
コメント