2012-03-16 30 views
10

Có cách nào để xác thực id Salesforce, có thể sử dụng RegEx không? Chúng thường là 15 ký tự hoặc 18 ký tự nhưng chúng theo một mẫu mà chúng ta có thể sử dụng để kiểm tra xem đó là một id hợp lệ.Xác thực Id Salesforce

Cảm ơn trước!

+0

bạn có biết ít nhất những ký tự nào được coi là hợp lệ không? –

+0

@BogdanEmilMariesan Tôi không hiểu câu hỏi của bạn. Các ký tự khác nhau đối với các bản ghi đối tượng khác nhau, đó là lý do tại sao nó không phải là một regex đơn giản mà tôi nghĩ. – Anup

Trả lời

16

Something như thế này nên làm việc:

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

Có ý kiến ​​cho rằng đây có thể chính xác hơn vì nó ngăn chặn Id với độ dài từ 16 đến 17 ký tự bị từ chối, chúng tôi cũng cố gắng để phù hợp với 18 chiều dài char đầu tiên với 15 độ dài dưới dạng dự phòng:

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

Nó khá thô, nhưng tôi thích nó. :) Cảm ơn! Tôi đã +1 câu trả lời của bạn. – Anup

+2

Một cách nhỏ gọn hơn để cụm từ này sẽ là '\ w {15,18}' – Technetium

+0

Trong hầu hết các triển khai regex, '\ w' sẽ bao gồm' _', vì vậy ở trên không chính xác. – haridsv

9

Cách dễ nhất tôi gặp là tạo một biến ID mới và gán một chuỗi cho biến đó.

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

Nếu MyTestID là null sau khi cố gắng gán, ID không hợp lệ.

+0

Vâng, tôi đã nhìn thấy giải pháp này trong các diễn đàn nhà phát triển Salesforce, nhưng đã tự hỏi liệu có cách nào tốt hơn để xác thực id salesforce hay không. Cảm ơn mặc dù! – Anup

+0

Bạn được chào đón; Giải pháp của Jeremy Ross sẽ hoạt động tốt nếu bạn cố gắng xác thực nó bằng Biểu thức chính quy. –

+0

Điều này là khá trơn! Đơn giản, nhưng nó hoạt động rất tốt. – VictorKilo

16

Có hai cấp độ chứng thực Salesforce id:

  1. dạng kiểm tra sử dụng biểu thức chính quy [a-zA-Z0-9]{15}|[a-zA-Z0-9]{18}
  2. 18-characted id bạn có thể kiểm tra các 3-character checksum: enter image description here
+1

Đây là câu trả lời chính xác và hữu ích nhất. cảm ơn bạn. – aaronbauman

+1

Tôi đã tạo một gist dựa trên thông tin ở trên và nó kiểm tra (số tiền). Tôi sẽ thấy mình ra ngoài. https://gist.github.com/jeriley/36b29f7c46527af4532aaf092c90dd56 – jeriley

1

Chỉ cần sử dụng instanceOf để kiểm tra xem chuỗi có phải là một cá thể của Id hay không.

String s = '1234'; 
if (s instanceOf Id) System.debug('valid id'); 
else System.debug('invalid id'); 
Các vấn đề liên quan