2012-03-16 26 views
10

RegExを使用してSalesforce IDを検証する方法はありますか?通常は15文字または18文字ですが、有効なIDであることを確認するために使用できるパターンに従います。Salesforce Idの妥当性確認

ありがとうございます!

+0

有効であると思われる文字を少なくとも知っていますか? –

+0

@BogdanEmilMariesan私はあなたの質問を理解していません。文字列はオブジェクトレコードによって異なります。なぜなら、それは私が思うような単純な正規表現ではないからです。 – Anup

答えて

16

このような何か作業をする必要があります:それは、それが拒否される16の長さと17文字でのIdsを防止するので、これは、より正確であることが示唆された

[a-zA-Z0-9]{15,18} 

、また、我々は18炭化長照合してみてください最初に15の長さをフォールバックとして使用します。

[a-zA-Z0-9]{18}|[a-zA-Z0-9]{15} 
+0

それはかなり原油ですが、私はそれが好きです。 :)ありがとう!あなたの答えを+1しました。 – Anup

+2

フレーズをコンパクトにする方法は '\ w {15,18} ' – Technetium

+0

です。ほとんどの正規表現の実装では、' \ w'に '_'が含まれているので、上記は正しくありません。 – haridsv

9

新しいID変数を作成し、それにStringを割り当てるのが最も簡単な方法です。

ID MyTestID = null; 
try { 
    MyTestID = MyTestString; } 
catch(Exception ex) { } 

MyTestIDが割り当てを試みた後にnullの場合、IDは無効です。

+0

ええ、私はsalesforce開発者フォーラムでこのソリューションを見てきましたが、Salesforce IDを検証するためのより良い方法があるのだろうかと思っていました。しかし、ありがとう! – Anup

+0

あなたは大歓迎です。 Jeremy Rossのソリューションは、正規表現で検証する場合にはうまくいくはずです。 –

+0

これはかなり滑らかです!シンプルですが、それは非常にうまく動作します。 – VictorKilo

16

SalesforceのIDを検証し、2つのレベルがあります:18-characted IDの正規表現[a-zA-Z0-9]{15}|[a-zA-Z0-9]{18}

  • を使用して

    1. チェック形式はあなたが3-character checksumを確認することができます。 enter image description here
  • +1

    これは最も正確で助けになる答えです。ありがとうございました。 – aaronbauman

    +1

    私は上記の情報に基づいて要点を作成し、それをチェック(合計)します。私は自分自身を見るでしょう。 https://gist.github.com/jeriley/36b29f7c46527af4532aaf092c90dd56 – jeriley

    1

    だけで使用instanceOfを実行して、文字列がIdのインスタンスであるかどうかを確認します。

    String s = '1234'; 
    if (s instanceOf Id) System.debug('valid id'); 
    else System.debug('invalid id');