mamalheydar
4 سال پیش توسط mamalheydar مطرح شد
2 پاسخ

تشخیص شماره کارت وشماره شبا در یک رشته

سلام دوستان من میخام با کمک عبارات منظم شماره شبا و شماره کارت رو تشخیص بدم
شماره شبارو پترنشون در آوردم
ولی برای تشخیص شماره کارت دوباره شماره شبا رو هم میگیره چه کار کنم که شماره شب رو در نظر نگیره
تشخیص شماره کارت :

\\d{4}(\\s|.){0,2}\\d{4}(\\s|.){0,2}\\d{4}(\\s|.){0,2}\\d{4}(\\s|.){0,2}  

کد تشخیص شماره شبا :

(ir).{0,3}\[0-9\\s\]{24,30}

6037 9973 9503 0605  
IR520170000000110528698006

ثبت پرسش جدید
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 4 سال پیش مطرح شد
0

ممنون میشم دقیق‌تر بگید شما میخواید چک بشه کد موردی که وارد شده شماره شباس یا شماره کارت ؟


mamalheydar
تخصص : متخصص php , توسعه وب
@m.r.heydarpanah 4 سال پیش آپدیت شد
1

@hesammousavi
من مشکلم این بود که پترن مربوط به تشخیص شماره کارت شماره شبا رو هم match میکرد نهایتا پیدا کردم پترن صحیح رو اینجا میزارم بقیه هم استفاده کنن ممنون از شما

نهایتا پترن های صحیح به این شکل هستش :
پترن مربوط به تشخیص شماره شبا با تشخیص کاراکترهای خاص بین رشته وارد شده :

\b^(ir)(\:|\-|\s)?(\d|\s|\-){23,30}\b$

پترن مربوط به تشخیص به شماره کارت حتی اگر بین هر 4 رقم کاراکترهای خاص مثل دَش وارد کنن:

/\b^(\d{4}|(\d-?){4}|(\d\s?){4}){4}\b

حالا اگر خواستید این کاراکترهای خاص رو حذف کنید وبعد ذخیره کنید از این متد به این شکل استفاده کنید:

(preg_replace('/\s|:|-|ir|iR|Ir|IR|/', ''

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام