validate بودن یک IP Address با استفاده از regular expression
سلام
با استفاده از دستور زیر فیلد ip رو چک می کنم که ساختار صحیحی داشته باشه
private static final String IPADDRESS_PATTERN = "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";
حالا سوال من اینه که اگه بخوام کاربر رو محدود بکنم که قسمت اول آدرس ip رو فقط فقط بتونه 10 وارد بکنه و قسمت چهارم رو هم فقط فقط بتونه 1 وارد بکنه چه تغییراتی باید تو کد بالا بدم ؟؟؟
یعنی فقط آدرس ip هایی با ساختار 10.255.255.1 صحیح باشه
با تشکر
نقل قول: validate بودن یک IP Address با استفاده از regular expression
یه خورده بستگی به انواع ورودی هایی که میتونه بگیره هم داره. مثلا تو فیلدهای وسطی 002 قابل قبوله. ولی 0002 قبول نمیکنه طبق regex ای که گذاشتید ولی در هر صورت صفر قبل از عدد مهم نیست.
به هر حال.
اگر بذاریم هر فیلد حداکثر سه رقم باشه یعنی 10 بتونه قبلش یک صفر یا هیچ صفری نباشه و 1 بخش چهارم هم هیچ، یک یا دو صفر باشه، کد زیر:
^([0]{0,1}10)\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([0]{0,2}1)
اگر هم میخوای فقط 10 و 1 نوشته باشه و دو بخش وسطی مثل قبل باشه خب ساده تره:
^(10)\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.(1)
نقل قول: validate بودن یک IP Address با استفاده از regular expression
ممنون بابت راهنماییت
دستور regex برای کنترل حروف فارسی وجود داره ؟؟؟
یعنی کاربر فقط حروف فارسی الف تا ی رو بتونه وارد کنه
نقل قول: validate بودن یک IP Address با استفاده از regular expression
ببخشید یه سوال دیگه هم داشتم
دستور "+[0-9]" به این معنی که فیلد مورد نظر تنها می تونه شامل عدد باشه ... حالا سوالم اینه که اگر بخوام چک کنم که فیلد مورد نظر با عددی به غیر از صفر شروع بشه باید چه تغییری تو دستور فوق بدم ؟؟؟
نقل قول: validate بودن یک IP Address با استفاده از regular expression
نقل قول:
دستور regex برای کنترل حروف فارسی وجود داره ؟؟؟
بله. کافیه به جای حرف A اولین حرف فارسی و Z آخرین حرف رو قرار بدی. برای فارسی هم اینکه حرف وسط باشه آخر باشه و... تفاوتی نداره و کوچک و بزرگ هم نداره.
ولی جدول unicode اش رو چک کن دقیقا ببینی کدوم حرف تا کدوم حرف رو میخوای و اینکه کاراکترهای نامرتبط وسطشون نباشه
نقل قول:
دستور "+[0-9]" به این معنی که فیلد مورد نظر تنها می تونه شامل عدد باشه ... حالا سوالم اینه که اگر بخوام چک کنم که فیلد مورد نظر با عددی به غیر از صفر شروع بشه باید چه تغییری تو دستور فوق بدم ؟؟؟
به صورت دقیقتر هر دنبال عددی (بدون فاصله) که حداقل متشکل از یک رقم 0 تا 9 باشه.
برای اینکه بگی با چی شروع بشه از کاراکتر ^ استفاده میکنیم. با چی تموم بشه با کاراکتر $
میتونی به این صورت بنویسی:
^[1-9][0-9]*
این regex فیلد خالی رو قبول نمیکنه. (یعنی بدون هیچ رقمی، قبول نمیکنه و لااقل یک رقم باید باشه)