今回は、Apexでテキスト項目の半角英数字チェックを行ってみました。
ちなみに入力規則で実装する場合は、以下の記事を参考にしてみてください。
【Salesforce】半角英数字のみを許可する入力規則
今回は、半角英数字のみを許可する入力規則を作成してみました。 ちなみにApexで実装する場合は、以下の記事を参考にしてみてください。 REGEX関数 入力されたテキスト…
さて、では本題へ。
目次
半角英数字チェックはトリガ処理で行う
入力された値に対して半角英数字チェックを行うので、判定処理はトリガ内で行います。
対象の項目に値が入力されてレコードが作成、または、更新された時に起動するトリガが必要ですね。
以下、サンプルコードになります。
trigger AccountTrigger on Account (before insert, before update) {
//Accountが作成、もしくは更新された際に、ハンドラーを呼び出す
if(Trigger.isBefore && (Trigger.isInsert || Trigger.isUpdate)){
AccountTriggerHandler ah = new AccountTriggerHandler();
ah.requiredCheck(trigger.new);
}
}
public class AccountTriggerHandler {
public void requiredCheck(List<Account> newList){
for(Account acc : newList){
//半角英数字チェック
if(!String.isBlank(acc.OnlyHalfSize__c) && !pattern.matches('^[0-9a-zA-Z]*', acc.OnlyHalfSize__c)){
acc.addError('半角英数字で入力してください。');
}
}
}
}
上記の処理では、「OnlyHalfSize__c」項目に入力された値が半角英数字でない場合に、エラーメッセージを表示するようにしています。
Patternクラスのmatchesメソッドを使用することで、表現のコンパイルと文字列に対するマッチ処理を 1 回の呼び出して実行することができます。
動作確認
対象の項目に全角文字を入力すると、エラーメッセージが表示され、レコードが保存されません。
今回はこれでおしまい。
コメント