PDA

View Full Version : حرفه ای: معنی کد



morudi
دوشنبه 30 اردیبهشت 1392, 18:01 عصر
سلام به همه دوستان من یه سوال داشتم می خواستم بدونم معنی کد درون دستور شرطی چیه بیشتر بخش ریگولارایسکریپشنش مهم هست برام فقط دقیق و گویا و بدون ابهام باشه
پیشاپش ممنون

if(preg_match('/^\w+$/',$suffix))

H:Shojaei
دوشنبه 30 اردیبهشت 1392, 19:25 عصر
سلام
به نظر من اين كد اشتباهه چون تابع ذكر شده توي پارامتر دومش ميگرده دنبال رشته اي كه داخل / / توي پارامتر اولش قرار گرفته و مقدار بولين برميگردونه.
حالا دليلم از اين كه ميگم اشتباست:
پارامتر اول چندتا كاراكتر داره كه غير از w باقيش كاراكتر هاي مورد استفاده ي خود زبان هستند(كاراكتر هاي خاص) بنابراين اگه بخواد از اين كاراكترها به عنوان رشته استفاده بشه بايد اولشون يه \ گذاشته بشه.
مثال:
مقدار اين true هست:


$suffix="gfd^+w$";
echo preg_match('/\^\+w\$/',$suffix);


ولش مقدار اين تابع false:


$suffix="gfd^+w$";
echo preg_match('/\^+w$/',$suffix);


اميدوارم كمكي كرده باشم.

morudi
دوشنبه 30 اردیبهشت 1392, 19:57 عصر
دوست عزیز این کد اشتباه نیست کد کار می کند می خوام بدونم کارش چیه؟

morudi
دوشنبه 30 اردیبهشت 1392, 19:59 عصر
کد کامل برای کلاس
public function setSuffix($suffix) {
if (preg_match('/^\w+$/', $suffix)) {
if (strpos($suffix, '_') !== 0) {
$this->_suffix = '_' . $suffix;
} else {
$this->_suffix = $suffix;
}
} else {
$this->_suffix = '';
}
}

morudi
چهارشنبه 01 خرداد 1392, 12:52 عصر
کسی نبود ؟

MMSHFE
چهارشنبه 01 خرداد 1392, 15:07 عصر
if(preg_match('/^\w+$/',$suffix))
یعنی اگه توی suffix$، حداقل یک حرف بود و چیزی بجز حرف توش نبود. برای درک بهتر، اینطوری میخونیمش:
^ شروع رشته
w\ حرف
+ حداقل یک مورد (حداکثر مشخص نشده)
$ پایان رشته
پس در کل داره میگه: رشته ای که حداقل یک حرف بین شروع تا پایانش داره و بین شروع تا پایان هم چیزی بجز حرف نیومده (مثلاً رشته ali?reza قابل قبول نیست).

H:Shojaei
چهارشنبه 01 خرداد 1392, 15:41 عصر
اي ول ما كجاييم شما كجاييد.
:اشتباه:
ببخشيد حالا اگه بخوايم انتهاش رو هم مشخص كنيم چي ميشه با چي بايد مشخص بشه؟؟ممنون
كلا خيلي پيچيدس واقعا:گیج:

MMSHFE
چهارشنبه 01 خرداد 1392, 18:35 عصر
منظورتون رو از اینکه میگین انتهاش رو مشخص کنیم متوجه نمیشم. در کل پایان رشته با $ مشخص میشه. مثلاً اگه بخوایم بگیم رشته موردنظر باید با یک حرف شروع بشه و با یک عدد تمام بشه و بینشون هرچی باشه و تعداد کارکتر بینشون هم مهم نیست، اینطوری مینویسیم:

if(preg_match('/^\w.*?\d$/', $suffix))