محمدرضا فلکی
2 سال پیش توسط محمدرضا فلکی مطرح شد
8 پاسخ

اعتبار سنجی فقط با اعداد فارسی

سلام به همگی
من دنبال یه کد regex میگردم که فقط اعداد فارسی رو قبول کنه.
مثل همچین چیزی👇

validator = validator::make($req->all(), [
    'birth_day' => ['regex:/^[\x{0590}-\x{05fe} ]+$/u']
];

ممنون میشم راهنمایی کنید.


ثبت پرسش جدید
CyrusKabir
تخصص : توسعه دهنده فرانت اند
@CyrusKabir 2 سال پیش مطرح شد
1

درسته اشتباه من بود که رفته بودم سمت اعداد فقط و راهنماییم فقط برای اعداد فارسی بود. این کد برای تاریخ تولد فارسی کار میکنه

'birth_day' => ['regex:/\x{06F1}[\x{06F3}-\x{06F4}]{1}[\x{06F0}-\x{06F9}]{2}\/[\x{06F0}-\x{06F1}]{1}[\x{06F0}-\x{06F9}]{1}\/[\x{06F0}-\x{06F3}]{1}[\x{06F0}-\x{06F9}]{1}/gu']

CyrusKabir
تخصص : توسعه دهنده فرانت اند
@CyrusKabir 2 سال پیش مطرح شد
1

سلام رفیق میتونی از جواب قبول شده پست زیر استفاده کنی فقط اون عدد 9 رو حذف کن :
Regex for Persian number


محمدرضا فلکی
تخصص : Learning Laravel
@m.reza6920 2 سال پیش مطرح شد
0

خیلی ممنون @CyrusKabir
یعنی به این شکل؟

'birth_day' => ['regex:^[\u06F0-\u06F90-]+$']

من به این شکل استفاده کردم و این ارور رو گرفتم :
preg_match(): No ending delimiter '^' found


CyrusKabir
تخصص : توسعه دهنده فرانت اند
@CyrusKabir 2 سال پیش مطرح شد
1

@m.reza6920 این ارور مربوط به نذاشتن delimiter هاست یا همون دوتا اسلش تو این زبان :/regex pattern/
اگه علاقه داشتی میتونی درباره delimiter تو این لینک بخونی


محمدرضا فلکی
تخصص : Learning Laravel
@m.reza6920 2 سال پیش مطرح شد
0

ممنون @CyrusKabir ولی
من به این صورت قرار دادم

'birth_day' => ['regex:/^[\u06F0-\u06F90-]+$/']

و این ارور رو گرفتم :

preg_match(): Compilation failed: PCRE2 does not support \F, \L, \l, \N{name}, \U, or \u at offset 4

CyrusKabir
تخصص : توسعه دهنده فرانت اند
@CyrusKabir 2 سال پیش مطرح شد
1

به این شکل بنویس :

'birth_day' => ['regex:/^[\x{06F0}-\x{06F90}]+$/u']

محمدرضا فلکی
تخصص : Learning Laravel
@m.reza6920 2 سال پیش مطرح شد
0

ممنون @CyrusKabir
کد کار کرد ولی من این کد رو برای تاریخ تولد میخوام
برای مثال من به این شکل نیاز دارم ۱۳۸۴/۰۹/۲۰
ولی اگر اینو وارد کنم بخاطر وجود / بین اعداد گیر میده
چجوری حلش کنم؟


CyrusKabir
تخصص : توسعه دهنده فرانت اند
@CyrusKabir 2 سال پیش مطرح شد
1

درسته اشتباه من بود که رفته بودم سمت اعداد فقط و راهنماییم فقط برای اعداد فارسی بود. این کد برای تاریخ تولد فارسی کار میکنه

'birth_day' => ['regex:/\x{06F1}[\x{06F3}-\x{06F4}]{1}[\x{06F0}-\x{06F9}]{2}\/[\x{06F0}-\x{06F1}]{1}[\x{06F0}-\x{06F9}]{1}\/[\x{06F0}-\x{06F3}]{1}[\x{06F0}-\x{06F9}]{1}/gu']

محمدرضا فلکی
تخصص : Learning Laravel
@m.reza6920 2 سال پیش مطرح شد
0

خیلی خیلی ممنونم @CyrusKabir
یه ارور هم داشت که میگفت g رو نمیشناسه پاک کردم درست شد.


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

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