MENU
Abo
某SIer勤務。
ITエンジニアです。
日々の学びをつらつらと書いています。
保有資格:
Salesforce認定アドミニストレーター  
Salesforce認定Platformデベロッパー
Salesforce認定上級Platformデベロッパー
カテゴリー
アーカイブ

【Apex】テキスト項目の半角英数字チェックをApexで!

今回は、Apexでテキスト項目の半角英数字チェックを行ってみました

ちなみに入力規則で実装する場合は、以下の記事を参考にしてみてください。

さて、では本題へ。

目次

半角英数字チェックはトリガ処理で行う

入力された値に対して半角英数字チェックを行うので、判定処理はトリガ内で行います。

対象の項目に値が入力されてレコードが作成、または、更新された時に起動するトリガが必要ですね。

以下、サンプルコードになります。

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 回の呼び出して実行することができます。

動作確認

対象の項目に全角文字を入力すると、エラーメッセージが表示され、レコードが保存されません。

今回はこれでおしまい。

参考資料

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

某SIer勤務。
Salesforceエンジニアです。
日々の学びをつらつらと書いています。
Certified Administrator
Certified Platform DeveloperⅠ
Certified Platform DeveloperⅡ
Certified Sales Cloud Consultant

コメント

コメントする

CAPTCHA


目次