برگزیده های پرشین تولز

مشکل با Regular Expression

peyman_khafan

Registered User
تاریخ عضویت
12 سپتامبر 2005
نوشته‌ها
198
لایک‌ها
3
محل سکونت
شیراز
سلام
من تازه مجبور شدم که از Regular Expression در برنامم استفاده کنم.
ولی مشکل اینجاست که نمی فهمم چی به چیه و هرکاری می کنم نمیشه :D
دو جا لازم دارم که از این استفاده کنم :
1- بررسی نام کاربری که فقط از حروف ، اعداد و _ (underscore) تشکیل بشه و برای سایر کاراکترها پیغام خطا بده.
2 - بررسی شماره حساب که فقط شامل اعدا ، - ( علامت منفی) و . (نقطه) بشه.
اگه میشه و لطفا کنید راهنمایی کنید یا آمادشو اینجا بذلرید ممنون میشم.
در ضمن اینم بگم که خیلی سرچ کردم و یه چیزایی هم پیدا کردم ولی باز نفهمیدم قضیه از چه قراره و یا به درستی کار نمیکنن.
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
چرا مجبور بشی؟ regex ها طوری هستند كه بعد از اینكه بهشون وارد بشی به شدت تو وقت و كیفیت برنامه هات تأثیر میذارن. كدی هم كه میخوای این میشه :
PHP:
$is_user = preg_match('@^[a-zA-Z0-9_]*$^@', $str, $match); 
$is_account = preg_match('@^[0-9\-\.]*$^@', $str, $match);
این pdf هم شاید بهتر كمكت كنه : http://rapidshare.com/files/31222336/regex.pdf.html
 

peyman_khafan

Registered User
تاریخ عضویت
12 سپتامبر 2005
نوشته‌ها
198
لایک‌ها
3
محل سکونت
شیراز
آقا خیلی ممنون از اینکه جواب دادی
امتحان می کنم ببینم چی میشه
 

peyman_khafan

Registered User
تاریخ عضویت
12 سپتامبر 2005
نوشته‌ها
198
لایک‌ها
3
محل سکونت
شیراز
اقا من اینو اینجوری می ذارم تو کدم ولی جواب نمیده :
PHP:
function validun($username) {
if (preg_match('@^[a-zA-Z0-9_]*$^@', $username, $match)) { 
   return TRUE;
} else {
       
	   return FALSE;
  }
}

if (validun($username)){
ادامه بده
}
else { echo "خطا"; }

میشه بگی مشکل کجا هست؟
 

firebird

Registered User
تاریخ عضویت
2 جولای 2005
نوشته‌ها
1,424
لایک‌ها
10
سن
46
یه جا من اشتباه كردم. اون ^ آخر اضافه هست. شرمنده.

PHP:
if (preg_match('@^[a-zA-Z0-9_]*$@', $username, $match)) {
 
بالا