View Full Version : سوال: RegularExpression براي چک کردن شماره تلفن ثابت
bftarane
دوشنبه 17 بهمن 1390, 17:17 عصر
سلام.
من مي خوام يه regular expression براي چک کردن شماره تلفن ثابت داشته باشم.
مي خوام کاربر پيش شماره و بعد شماره رو وارد کنه. مثلاً براي تهران
02123456789
خوب پيش شماره براي شهرهاي مختلف فرق داره و تعداد اعدادش هم متغيره. چه جوري به کاربر اجازه بدم ابتدا يه عدد با تعداد دلخواه وارد کنه و بعد يه عدد هشت رقمي؟
سوالم رو اين جوري بپرسم چه تغييري بايد در کد زير بدم؟
^0[0-9][0-9]{8}$
خوب اين جور که فهميدم اين فقط اين جوري قبول ميکنه اول يه 0
بعد يه رقم
بعد يه عدد هشت رقمي
ممنون
A.S.Roma
دوشنبه 17 بهمن 1390, 17:48 عصر
^0[0-9]{2,}[0-9]{7,}$
bftarane
دوشنبه 17 بهمن 1390, 18:12 عصر
سلام. با عبارتي که شما نوشته بوديد اين شماره رو امتحان کردم 0211558499989555555 خطايي نداد.
ولي با کمک پست شما اين رو نوشتم
^0[0-9]{2,}-[0-9]{8}$ و چند تا عدد رو امتحان کردم نتيجه، دلخواهم بود.
فکر کنم بدون خط فاصله نشه اين کار رو انجام داد.
A.S.Roma
دوشنبه 17 بهمن 1390, 18:14 عصر
کد من چک میکنه پیش شماره حداقل 2 رقم و شماره تلفن حداقل 7 رقم باشه .
شما اگر حداقل ها و حداکثرها واستون مشخصه بگین براتون Regex ش رو بنویسم.
bftarane
دوشنبه 17 بهمن 1390, 18:24 عصر
من فقط دارم تمرين ميکنم. و چون اطلاعي از حداقل و حداکثر پيش شماره ها و شماره تلفن ها ندارم پس چيزي برام مشخص نيست.
ولي اگه لطف کنيد بگيد مثلاً حداکثر 5، و
همچنين حداکثر 5 حداقل 1 رو چه جوري مي نويسن ممنون ميشم. (يعني هم حداقل و هم حداکثر توأماً)
اگه يه منبع خوب براي مطالعه هم معرفي کنيد که ديگه چه بهتر.
A.S.Roma
دوشنبه 17 بهمن 1390, 18:35 عصر
حداقل 2 و حداکثر 8 میشه :
[0-9]{2,8}
البته تو مثال بالا اعداد یک رنج مشخص شده . اما هر Blockی میتونه این اتفاق واسش بیوفته و تکرار بشه. مثل :
.{2,8}
که معنیش میشه هر کاراکتری که 2 تا 8 بار تکرار شده باشه.
------------------------------------------------------------------
حداقل 5 تکرار یا بیشتر :
[0-9]{5,}
-------------------------------------------------------------------
دقیقا" 5 تکرار :
[0-9]{5}
یک Tool خوب واسه این قضیه هست به نام Expresso ، از اینجا می تونید دانلود کنید :
http://www.ultrapico.com/ExpressoDownload.htm
اما واسه یادگرفتنش بهترین مرجع MSDN هست . هر چند یادگیریش به این سادگی نیست !
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.