ปัญหาในการใช้กฎการตรวจสอบกับคอมโพเนนต์ REGEX

ฉันมีกฎการตรวจสอบที่ไม่ยืนยันว่าเป็นจริง และฉันไม่รู้ว่าเหตุใดจึงเป็นเช่นนั้น สูตรมีดังนี้:

AND( 
$RecordType.Name = "GSM Yfirsýn", 
INCLUDES( mplGSM_Yfirlit_Extras__c , "Netið"), 
REGEX(LEFT( txPayerKennitala__c ,1), "[4-6] {1}") 
)

โดยจะค้นหาประเภทระเบียนที่เฉพาะเจาะจง ตรวจสอบเพื่อดูว่าค่าที่เลือกจากรายการตัวเลือกแบบเลือกหลายรายการ mplGSM_Yfirlit_Extras_c มีคำว่า 'Netið' หรือไม่ และยังตรวจสอบ regex ด้วยว่าตัวอักษรตัวแรกของสตริงข้อความมีอยู่ใน txPayerKennitala หรือไม่ _c คือ 4,5 หรือ 6 หากเป็นจริงทั้งหมด ก็ควรจะทริกเกอร์ แต่มันไม่ใช่ ฉันคิดว่าส่วน REGEX มีการกำหนดค่าไม่ถูกต้อง ฉันสามารถทำได้ - ใช้การดำเนินการ LEFT() เพื่อตรวจสอบตัวอักษรตัวแรกแล้วส่งต่อไปยังฟังก์ชัน REGEX ที่ตรวจสอบ ? หรือฉันอยู่นอกฐาน?


person akarnid    schedule 15.05.2012    source แหล่งที่มา


คำตอบ (2)


REGEX [4-6] {1} ของคุณมีการเว้นวรรคก่อน {1} กำลังตรวจสอบว่ามีตัวเลข 4, 5 หรือ 6 และหนึ่งช่องว่าง แต่เปรียบเทียบเฉพาะอักขระตัวแรกของ txPayerKennitala__c LEFT เปลี่ยน REGEX ของคุณเป็น [4-6]{1} และดูว่าจะช่วยได้หรือไม่

person Matt K    schedule 15.05.2012
comment
ใช่แล้ว มันทำได้ ฉันยังคงใช้งานสิ่งนี้ไม่ได้ แต่มันเป็นก้าวไปในทิศทางที่ถูกต้อง ขอบคุณสำหรับสิ่งนั้น ฉันจะทำเครื่องหมายว่าถูกต้อง - person akarnid; 18.05.2012
comment
ฉันแก้ไขกฎนี้ดังนี้: - person akarnid; 01.06.2012

ฉันได้สิ่งนี้ไปทำงานได้ดี ส่วน REGEX เริ่มทำงานเมื่อฉันลบช่องว่างออก ปัญหาของฉันเกิดจากส่วน INCLUDES ด้วย ฉันมีค่าที่แตกต่างกัน 5 ค่าในรายการตัวเลือกแบบเลือกหลายค่าเพื่อประเมิน และฉันต้องใช้คำสั่ง OR ระหว่างค่าเหล่านั้น ดังนั้นสำหรับใครก็ตามที่สะดุดล้ม นี่คือสูตรกฎที่ถูกต้องสำหรับฉัน:

AND( 
$RecordType.Name = "GSM Yfirsýn", 
OR( 
INCLUDES(mplGSM_Yfirlit_Extras__c ,"Netið í Símann 1" ), 
INCLUDES(mplGSM_Yfirlit_Extras__c ,"Netið í Símann 2" ), 
INCLUDES(mplGSM_Yfirlit_Extras__c ,"Netið í Símann 3" ), 
INCLUDES(mplGSM_Yfirlit_Extras__c ,"Netið í Símann 4" ), 
INCLUDES(mplGSM_Yfirlit_Extras__c ,"Netið í Símann 5" )), 
REGEX(LEFT( txPayerKennitala__c ,1),"[4-6]{1}") 
)
person akarnid    schedule 01.06.2012