View Full Version : سوال در مورد تابع preg_match
Kingali
دوشنبه 27 مهر 1388, 11:24 صبح
سلام
میخواستم ببینم با تابع preg_match میشه مثلا چندتا ایمیل رو که توی یک string بصورت نامنظم ( ali@yahoo.com ';sada...8s98d kingali@gmail.com ... ) هستن رو جدا کنیم و همه رو بریزیم تو یه آرایه؟ اگه ممکنه کدش رو هم لطف کنید بنویسید.:چشمک:
من هرکار کردم فقط اولی رو میریزه...
ممنون
metal gear solid 4
سه شنبه 03 آذر 1388, 23:38 عصر
if (ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)) {
echo 'email ok';
} else {
echo 'email not ok';
}
یک سری هم به این لینک بزن خودت یاد بگیر حکومت کن !!!! توی برنامت....
http://www.smashingmagazine.com/2009/06/01/essential-guide-to-regular-expressions-tools-tutorials-and-resources/
metal gear solid 4
چهارشنبه 04 آذر 1388, 12:20 عصر
سلام
من هیچی از این preg بلد نبودم ولی با خوندن صفحه ی بالا یه چیزایی یاد گرفتم. اما این کدی که نوشتم چیزی که من میخوام رو انجام نمیده.
میخوام نام کاربری شامل تمامی حروف بزرگ و کوچک انگلیسی باشه - فقط با حروف شروع شه - طولش بیشتر از 5 و کمتر از 25 باشه. - شامل کاراکتر های زیر هم باشه , . ? $ ' _ و دیگر هیچ....
$string =array("k5324-4324","ali","mohammad_.,?","5bename_khoda","Modern warfare , . ? $");
for($i=0;$i<count($string);$i++)
if (preg_match('/^[A-Za-z][A-Za-z0-9\,\.\? _]{5,25}/', $string[$i]))
echo "$string[$i] This username is valid.<br />";
else
echo "$string[$i] INVALID<br />";
!!!!! دوستان میشه بگین این کد کجاش مشکل داره؟
خروجی بالا اینه :
k5324-4324 INVALID
ali INVALID
mohammad_.,? This username is valid.
5bename_khoda INVALID
Modern warfare , . ? $ This username is valid.
eAmin
چهارشنبه 04 آذر 1388, 21:44 عصر
سلام.
بنده regexp شما رو به اینصورت تغییر دادم، البته از شما هم هیچ مشکلی نداشت و خیلی خوب کار می کرد.
$string =array("k5324-4324","ali","mohammad_.,?","5bename_khoda","Modern warfare , . ? $");
for($i=0;$i<count($string);$i++)
if (preg_match('/^[a-z][a-z0-9\,\.\? \-_]{5,25}/i', $string[$i]))
echo "$string[$i] This username is valid.<br />";
else
echo "$string[$i] INVALID<br />";
شاید شما می خواستید که یوزری با این نام: k5324-4324 هم بتونه ثبت نام کنه ولی در pattern شما ه علت اینکه کاراکتر - ( Dash ) رو جا انداخته بودید جواب نمی داد.
موفق باشید.
metal gear solid 4
شنبه 07 آذر 1388, 22:06 عصر
خیلی خیلی خیلی ممنون ولی این کدی که شما تصحیحش کردید یک رشته ی 50 کاراکتری هم بدید خروجی this username is valid بر میگردونه در صورتی که توی کد نوشتم بین 5 تا 25 !!!!!
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.