PDA

View Full Version : سوال: بازیابی Cookie



e_a_23
سه شنبه 12 اردیبهشت 1391, 14:15 عصر
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}


توضیح:
function بالا یک آرایه برای بازیابی مقادیر cookie و نام cookie ایجاد می کند، سپس چک می کند که اگر cookie وجود داشت مقدار cookie را بر می گرداند.

کد خط 8 را متوجه نمی شوم.لطفا کمک بفرمایید.

MMSHFE
سه شنبه 12 اردیبهشت 1391, 14:26 عصر
خط 8 باعث میشه فواصل خالی ابتدا و انتهای رشته x حذف بشن. فقط نمیدونم چرا از trim استفاده نکرده!

e_a_23
سه شنبه 12 اردیبهشت 1391, 14:37 عصر
ممنونم.
| , $ , ^ چی هستند؟

MMSHFE
سه شنبه 12 اردیبهشت 1391, 17:01 عصر
| یعنی or (یا)
$ یعنی انتهای رشته
^ یعنی ابتدای رشته
s\ یعنی کارکتر فاصله
+ یعنی حداقل یکبار
;("" ,x = x.replace(/^\s+|\s+$/g
هم یعنی اگه یک کارکتر فاصله یا بیشتر در ابتدا یا انتهای رشته x بود، اونها رو با "" (یک رشته خالی) جایگزین کن و دوباره نتیجه رو توی x ذخیره کن. اینطوری، فاصله های خالی ابتدا و انتهای رشته حذف میشه.
البته تعجب میکنم چرا از trim استفاده نشده چون تابع trim هم یک رشته رو میگیره و فواصل خالی ابتدا و انتهاش رو حذف میکنه. مثال:
;(x = trim(x
موفق باشید.
موفق باشید.

e_a_23
سه شنبه 12 اردیبهشت 1391, 17:36 عصر
خیلی خیلی ممنونم از پاسختون.
بله trim رو دیده بودم.or , $ هم در زبانهای برنامه نویسی می شناختم.اینجا چون با کاراکترهای دیگه اومده بود نمیدونم چرا متوجه نشدم :)
به هر حال مبشکرم ازتون.

e_a_23
سه شنبه 12 اردیبهشت 1391, 19:20 عصر
ظاهرا در JavaScript به صورت ;(x = trim(x نمی توان نوشت.
طریقه صحیح:
x=jQuery.trim(x);
و یا:

function trim(stringToTrim) { return stringToTrim.replace(/^\s+|\s+$/g,""); }


اگر اشتباه می کنم لطفا تصحیح بفرمایید.