設定方法

半角数字・全角カタカナに加えて色々と制限したい!! 正規表現の応用編

スポンサーリンク

こんな事ありませんか?

Salesforceを使用していて、こんな事ありませんか?
・半角英数字だけを入力させたい・・・
・アルファベットと数字を組合せて入力を制御させたい・・・
・ハイフンは半角にして郵便番号を入力させたい・・・
・自分で自由に入力を制御させたい・・・

そんな時は、入力規則を使って入力できる内容を制御しましょう!!
色々な正規表現を紹介するのでぜひ活用ください!!

今回の記事は、Salesforceで使える様々な正規表現について設定方法を載せています。
☆この内容を参考にして色々と設定できるので、ぜひブックマークしていつでも見返せるようにしてください♪☆
※ご相談あれば、コメントください!匿名なのでお気軽にどうぞ☆


ADMINだってできるもん
以下の記事は既に作成した正規表現を紹介していますので、ご参考ください!!
https://adminfight.com/salesforce-manual-setting-regularexpression-tips/

前提

・テキスト項目に対して、入力規則を作成していきます。
※数値項目や通貨項目は、そもそも入力できる内容や桁数を制御できるため。

・ロングテキスト項目やリッチテキスト項目は対象外です。
※改行されて入力されるとエラーになります。

・実際に使う時は、 Test__c の部分を実際の項目API名に変えてくださいね!!!!

正規表現の基本

Salesforceで入力規則によって、入力内容を制御するには以下の文法を使用します。
NOT( REGEX( Test__c , “ここに制御内容を記載する” ) )
※Test__cは、入力を制御したいAPI名に変えてください。
※ここに制御内容を記載する の部分を紹介していきます。


■固定文言を入力させたい場合
基本は、この通りです。””の中に制限したい内容を書くだけです。
NOT( REGEX( Test__c , “テスト” ) )
※この場合は、テスト だけが入力できます。これ以外の文字は入力できません。


■指定した文言を入力させたい場合
基本は、この通りです。[]の中に指定したい文言を書くだけです。
NOT( REGEX( Test__c , “[0-9]” ) )
※この場合は、0123456789の半角数字だけが入力できます。[]の中を0-9の半角数字で書いているため。
※仮に、[]の中を0-9と全角数字で書くと、0123456789の全角数字だけが入力できるようになります。


例えば、以下のように書くと・・・
NOT( REGEX( Test__c , “[あいうかきく]” ) )
この場合は、あいうかきくの文字だけが入力できます!指定したい文言を[]の中に書くというのが基本です!!

指定したい文言を[]の中に書く際のルール

基本で説明した通り、指定したい文言を[]の中に書くというのが基本でした。

ここでは、[]の中に記載するときのルールを紹介します。
➀複数の内容を書く場合は、指定したい内容を繋げて書く。
例えば、あいうかきくABCDEだけを入力させたい場合は、
NOT( REGEX( Test__c , “[あいうかきくABCDE]” ) )
と書きます。※文字の間にスペース等は不要です。

➁空白スペースを入力してもOKな場合は、空白スペースを明記する
例えば、あいうかきく 半角スペースだけを入力させたい場合は、
NOT( REGEX( Test__c , “[あ いうかきく]” ) )
と書きます。あ いの間に半角スペースを入れています。

➂[]の中に記載する内容は順不同でOK
例えば、以下はすべて同じ入力規則になります。
パターン1:NOT( REGEX( Test__c , “[あ いうかきく]” ) )
パターン2:NOT( REGEX( Test__c , “[あいう かきく]” ) )
パターン3:NOT( REGEX( Test__c , “[ういあかき く]” ) )
パターン4:NOT( REGEX( Test__c , “[くきかういあ ]” ) )

特に➁の空白スペース等は注意してくださいね!!

入力できる桁数・文字数を設定する

基本で説明した内容に桁数や文字数を設定する方法について説明します。

設定方法は、以下の通りです。{}の中に設定したい数字を入力するだけです!!
NOT( REGEX( Test__c , “[あいうかきくABCDE]{5}” ) )
 →あいうかきくABCDEを使用して5文字入力できる。※5文字以外はエラーになります。

基本で紹介していた以下は、1文字を入力する制御がかかります。
NOT( REGEX( Test__c , “[あいうかきくABCDE]” ) )
 →あいうかきくABCDEを使用して1文字入力できる。※1文字以外はエラーになります。


上記の紹介では、ブランク(1文字も入力しない)もエラーになってしまいます・・・。
入力する際に、ブランク(1文字も入力しない)も許容する場合は、以下のように文法側で対応するのが理解しやすいです。
AND(NOT(ISBLANK(Test__c )),NOT( REGEX( Test__c , “[あいうかきくABCDE]{5}” ) ))
※項目に何か入力されている時に、正規表現を適用する様にします。


アドミンの方が正規表現を設定する際の考慮事項は、下の方に書いてますので合わせて見てみて下さい!!

基本で説明した内容に桁数を無限にする方法について説明します。

設定方法は、以下の通りです。[]の後に+を入力するだけです!!
NOT( REGEX( Test__c , “[あいうかきくABCDE]+” ) )
 →あいうかきくABCDEを桁数なく入力できます。※項目がブランクだとエラーになります。
※+は、直前の文字を1文字は入力するという意味です。

もし、項目がブランクもエラーにしたくない時は、以下の通りです。[]の後に*を入力するだけです!!
パターン1:NOT( REGEX( Test__c , “[あいうかきくABCDE]*” ) )
 →あいうかきくABCDEを桁数なく入力できます。※項目がブランクでもOKです。
※*は、直前の文字は、0文字でも無限でもOKという意味です。

パターン2:AND(NOT(ISBLANK(Test__c )),NOT( REGEX( Test__c , “[あいうかきくABCDE]+” ) ) )
 →こっちの方が理解しやすくてオススメではあります。
※項目値がブランクはOK、何か入力するなら、あいうかきくABCDEを1文字は入力しなさい。という意味です。


指定した文字以外を無限に入力したい場合は以下のようにします。
NOT( REGEX( Test__c , “[あいうかきくABCDE].*” ) )
 →あいうかきくABCDEを1文字入力でき、その後は何でも入力できる内容です。
※あいうかきくABCDEは1文字入力が絶対で、他の文字は任意です。
※.は、任意の文字という意味です。
.*は、任意の文字を、0文字でも無限でも入力できるという意味です。


アドミンの方が正規表現を設定する際の考慮事項は、下の方に書いてますので合わせて見てみて下さい!!

色々な正規表現の書き方

ここまで紹介した内容をおさらいしていきましょう。
Ⅰ 固定文言を入力させたい場合 →NOT( REGEX( Test__c , “あいう” ) )
Ⅱ 指定した文言を入力させたい場合 →NOT( REGEX( Test__c , “[012]” ) )
Ⅲ 指定した文言の桁数を指定したい場合 →NOT( REGEX( Test__c , “[012]{8}” ) )
Ⅳ 指定した文言を無限に入力したい場合 →NOT( REGEX( Test__c , “[012]+” ) )
Ⅴ 任意の文言を無限に入力したい場合 →NOT( REGEX( Test__c , “.*” ) )
Ⅵ 項目がブランクでもOKにしたい場合 →ISBLANK(Test__c )を使用する


これまで紹介した内容で、大体の設定したい制御は可能です。
いくつか紹介していきます。
※ちなみに、今回はアドミンの方が理解や設定しやすい内容にしています。


➀最初の文字を指定する場合は以下がオススメです。


➁最後の文字を指定する場合は以下がオススメです。


➂特定の文字や途中を指定は、以下がオススメです。


このようにⅠ~Ⅵの構文を使用すれば大体の内容が設定できます!
こういう制限をしたいけど分からない。のような内容あれば、コメントでご連絡ください~!

正規表現に対してアドミンの方が考慮すべき内容

他のWebサイト等を見ると以下のような入力規則が紹介されています。

➀!REGEX( Test__c, ‘\w’)
➁!REGEX( Test__c, ‘^\\d{3}-\\d{4}$’)
➂!REGEX(Test__c,”^(\d{3}\-\d{2}-\d{4})

これらを見て内容がパッと理解できる人は、ものすごく凄い方です(笑)
Salesforceのアドミンをやっている方は、色んな職歴の方がいますので万人が理解できるのが望ましいですね!!


そのため、今まで紹介した内容で設定しておくのが良いと思います!!
※たとえ、少し数式がまどろっこしくても理解しやすいのが良いと個人的には思います。メンテナンスもしやすいです。


難しい内容を無理に理解せずに、基本を工夫しながら入力規則を作成するのが良いと思います!
不明点等ありましたら、お気軽にコメントください!!


ちなみに、➀~➂は以下のように代替できます。
!REGEX( Test__c, ‘[0-9A-Za-z]’)
!REGEX( Test__c, ‘[0-9]{3}-[0-9]{4}’)
!REGEX( Test__c, ‘[0-9]{3}-{0-9]{2}-[0-9]{4}’)

スポンサーリンク
アドもんをフォローする
Adminだってできるもん

コメント 匿名ですので、お気軽にコメントいただけると嬉しいです!!

タイトルとURLをコピーしました