ورود

View Full Version : نحوه ی استفاده از قوانین عبارات با قاعده (regex) در validate کردن داده های ورودی



CodeforLife
پنج شنبه 14 بهمن 1395, 08:10 صبح
سلام به دوستان گرامی .
من می خوام در برنامه به کاربر بگم که تو اگر حروفی غیر از ارقام و حروف وارد کردی (یعنی کاراکتر های خاص ) نذاره تو ورودی رو وارد کنه !و بهش یه پیام بده .
تصمیم گرفتم برای آسون تر کردن کار از regex ها استفاده کنم .


//
//methods to validate
//
public void isCorrectUserName() {
if (admin.getAdminUserName().length() < 5)
userNameValidation = Validation.LENGHT;
else if (admin.getAdminPassword().length() > 10)
userNameValidation = Validation.LENGHT;
else if (admin.getAdminUserName() == null)
userNameValidation = Validation.NULL;
else if (admin.getAdminUserName().matches("\\W.*"))
userNameValidation = Validation.SPECIALCHAR;
else if (admin.getAdminUserName().contains(" "))
userNameValidation = Validation.SPACE;
else
userNameValidation = Validation.NONE;
}

من از لینک زیر استفاده کردم
http://www.vogella.com/tutorials/JavaRegularExpressions/article.html
خیلی خوب توضیح داده مسئله اینجا هست که وقتی همه کاراکتر ها رو از علائم خاص استفاده میکنم درست پیام میده ....ولی وقتی یکی دو تا وارد می کنم و بقیه رو از حروف و ارقام استفاده میکنم
ثبت رو انجام میده .
اگر میدونید لطفا راهنماییم کنید که چه طور این کار رو بکنم و یا راه دیگری پیشنهاد کنید
متشکرم

spiderman200700
جمعه 15 بهمن 1395, 21:38 عصر
سلام.
از این استفاده کن:

^[a-zA-Z0-9]+$

CodeforLife
یک شنبه 17 بهمن 1395, 10:38 صبح
ممنونم
همین کار رو ه فرمودین امتحان کردم ولی باز هم همون طور هست!!! آیا راه دیگری دارید؟؟؟

CodeforLife
یک شنبه 17 بهمن 1395, 14:51 عصر
ممنون از شما دوست عزیز کار کرد اشتباه من این بود که در دستورات شرطی باید به اینصورت عمل کردم که اگر مقدار اون نامساوی هست بگه که مقدار invalidهست.

private void setRegexValueToValidate(String input) {
pattern=Pattern.compile(REGEX);
matcher=pattern.matcher(input);
}


//
//methods to validate
//
public void isCorrectUserName() {
//
//input value to method
//
setRegexValueToValidate(admin.getAdminUserName());

if (admin.getAdminUserName().length() < 5)
userNameValidation = Validation.LENGHT;
else if (admin.getAdminUserName().length() > 10)
userNameValidation = Validation.LENGHT;
else if (admin.getAdminUserName() == null)
userNameValidation = Validation.NULL;
else if (!matcher.matches())
userNameValidation = Validation.SPECIALCHAR;
else if (admin.getAdminUserName().contains(" "))
userNameValidation = Validation.SPACE;
else
userNameValidation = Validation.NONE;
}