PDA

View Full Version : سوال: Form validation



مجتبی نکونام
سه شنبه 13 بهمن 1394, 23:58 عصر
چگونه می توانیم یک ورودی فارسی را بررسی کنیم ؟
مثلا ببینیم که فرمت اطلاعات وارد شده با فرمت مورد نظر ما یکسان است یا خیر ؟

scofield007
چهارشنبه 14 بهمن 1394, 00:29 صبح
دوست عزیز شما باید از عبارات منظم استفاده کنید که از کاراکترهای یونیکد مثل فارسی هم پشتیبانی میکنه.

Unique
چهارشنبه 14 بهمن 1394, 03:25 صبح
سوالتون خیلی کلی هستش ! دقیقا میخواین چی را فیلتر کنین !؟
عبارات منظم یا همون RegExp که دوستمون اشاره میکنه هم خیلی پاسخ کلی هست و شاید دقیقا جواب شما نباشه.

مجتبی نکونام
چهارشنبه 14 بهمن 1394, 10:26 صبح
سوالتون خیلی کلی هستش ! دقیقا میخواین چی را فیلتر کنین !؟
عبارات منظم یا همون RegExp که دوستمون اشاره میکنه هم خیلی پاسخ کلی هست و شاید دقیقا جواب شما نباشه.


من دقیقا میخوام عباراتی که به زبان فارسی از طریق input text وارد میشود را کنترل کنم .
مثلا : کاراکتری اضافه بر فرمت دلخواه من را نپذیرد ( برای مثال فرمت صحیح من برای فیلد نام فقط حروف انگلیسی و فارسی هست
و هیچ کاراکتری غیر از حروف نباید وارد شود. نمونه هایی که اجازه ورود ندارند مثل : علی12 یا {محمد یا رضا--حسن )

leaping
چهارشنبه 14 بهمن 1394, 10:45 صبح
من دقیقا میخوام عباراتی که به زبان فارسی از طریق input text وارد میشود را کنترل کنم .
مثلا : کاراکتری اضافه بر فرمت دلخواه من را نپذیرد ( برای مثال فرمت صحیح من برای فیلد نام فقط حروف انگلیسی و فارسی هست
و هیچ کاراکتری غیر از حروف نباید وارد شود. نمونه هایی که اجازه ورود ندارند مثل : علی12 یا {محمد یا رضا--حسن )
برای این کار استفاده از عبارات Regex بهترین روش هست

مثلا برای مورد شما این نمونه کد رو میتونید نگاه کنید



function Name($value) { $pattern = '/^[a-zA-Z\'\"\s]{3,32}$/'; $Eng = preg_match($pattern,$value); $pattern = '#^[\s\x{0621}-\x{063A}\x{0640}-\x{0691}\x{0698}-\x{06D2}0-9]{3,32}$#u'; $Per = preg_match($pattern,$value); if($Eng and $Per) { return false; } if($Per){return true;} if($Eng){return true;} return false; }

این فانکشن بالا بررسی میکنه
که ورودی یا حروف فارسی باشه یا حروف انگلیسی و تعداد کاراکترهاش از 3 کمتر نباشه و از 32 بیشتر نباشه
اگه غیر این بود false برمیگردونه
اگه ترکیب فارسی و انگلیسی هم باشه باز false برمیگردونه

مجتبی نکونام
چهارشنبه 14 بهمن 1394, 11:16 صبح
:تشویق::تشویق::تشویق:
ممنونم از راهنماییتون
عالی بود

فقط اگه زحمتی نبود قسمت pattern فارسی رو ترجمه کنید که این کدها مربوط به چه کاراکترهایی هستند.

leaping
چهارشنبه 14 بهمن 1394, 12:33 عصر
برای این کار میتونید از وب سایت زیر استفاده کنید که اطلاعات جامع و مفیدی رو ارائه میکنه
http://graphemica.com/