PDA

View Full Version : تشخیص عدد در رشته



saeidejafari
چهارشنبه 06 شهریور 1387, 12:14 عصر
سلام بر همگی!
من یه رشته دارم که ترکیبی از حرف و عدده مثلا name=ali,family=alavi,id=10 می خوام مقادیر(ali,alavi,10) رو چک کنم یعنی مثلا اگه مقدار id حرف بود پیغام خطا بده .
با gettype که همشو string میشناسه.
کسی می دونه باید چیکار کنم؟

meysamm
چهارشنبه 06 شهریور 1387, 12:34 عصر
میتونی از تابع implode استفاده کنید و اول بوسیله کاما , رشته تون رو تجزیه کنید بعد بوسیله مساوی = و در نهایت هم اون رو چک کنید ببینید درست کار میکنه یا نه!


$myString = "name=ali,family=alavi,id=10";
$strParts = explode(",", $myString );
تویه این کد من اول رشته رو بوسیله کاما تویه یک آرایه ذخیره کردم بعد از این همین کار رو بوسیله آرایه روی هر کدوم از زیر رشته ها انجام میدم!

البته راه حل بهینه تری هم واسه این کار وجود داره و اون اینه که از تابع split استفاده کنید اما در این صورت باید با regular expression آشنا باشید!

saeidejafari
چهارشنبه 06 شهریور 1387, 13:52 عصر
ممنون از جوابتون ولی من این کارو کردم در واقع مشکل من این نیست مشکلم چک کردن اون مقداره که عدد هست یا حرف.

aghasina
چهارشنبه 06 شهریور 1387, 15:28 عصر
خب با گت تایپ میتونی
با چک کردن عبارات منظم هم میتونی
مثلا شبیه چک کردن رشته ایمیل
اگر میخوای بگو

sama01
چهارشنبه 06 شهریور 1387, 21:43 عصر
با روشی که صلاح می‌دونی رشته‌ها رو تفکیک کن. بعد با این دستور می‌تونی چک کنی که مثلا متغیر id آیا عددی است یا نه:

is_numeric ($id)
که در صورت عددی بودن مقدار id، معادل true و در غیر این صورت معادل false خواهد بود.

aghasina
چهارشنبه 06 شهریور 1387, 23:29 عصر
خیلی راه ها میشه که اصلی هاش رو راهنماییت کردیم با دوستان

saeidejafari
پنج شنبه 07 شهریور 1387, 08:24 صبح
ممنون درست شد.:تشویق:
برای همین کار توی جاوا اسکریپت از چه تابعی باید استفاده کنم؟؟

sama01
پنج شنبه 07 شهریور 1387, 14:59 عصر
با این کد می‌تونی چک کنی که آیا مقدار مورد نظر عددی است یا خیر:

if (typeof x=="number")...

ولی حتما بررسی را سمت سرور هم انجام دهید.

saeidejafari
پنج شنبه 07 شهریور 1387, 15:59 عصر
مرسي.
باشه حتما چك مي كنم.

saeidejafari
شنبه 09 شهریور 1387, 13:28 عصر
توی جاوا اسکریپت درست کار نمیکنه یعنی اگه id=24 باشه این دستور



if (typeof(piece[1])=="number")

برام مقدار string رو بر میگردونه!!!!!!!

sama01
شنبه 09 شهریور 1387, 16:17 عصر
این کد رو قبل از بررسی این‌که عددی هست یا نه بنویس.
کارش اینه که اگر متغیرت (که در اینجا i هست) عددی باشه، تبدیل به عدد می‌شه.

if (i/2 || i == 0)
i = parseInt(i);