
نوشته اصلی توسط
iroo
من با کد فوق تونستم انجام بدم
منتها کد اسکی یک کاراکتر خاص رو نتونستم به تنهایی اعمال کنم و درست از آباد در نمیاد
کد زیر درسته؟؟؟
کد:
if (charCode > 31 && (charCode < 48 || charCode > 57) || charCode == 43 )
return false;
return true;
}
- - - Updated - - -
این کد به درستی کار نمیکنه، چون این
charCode == 43 بهمش میریزه
پرانتز تو شرط های زبان های برنامه نویسی مختلف مثل پرانتز تو معادله های ریاضی عمل میکنه و زبان های برنامه نویسی هم اول پرانتز ها رو محاسبه میکنن بعدش میان سراغ بیرون پرانتز ها.
ببینید این شرط آمده میگه اگر charCode بزرگتر از 31 بود به علاوه داخل پرانتز اگر charCode یا کوچکتر از 48 و یا بزرگتر از 57 بود کد اجرا بشه/
خب حالا این وسط چون شما بعد از کل این شرط آمدید یه علامت || که به معنای یا (OR) هستش رو گذاشتید یعنی اجرا کننده زبان فکر میکنه یا شرط قبلی باید انجام بشه که بالا گفتم یا شرطی که شما اضافه کردید.
برای همین اگر می خواین شرط شما همراه شرط قبلی اجرا بشه باید به پرانتز ها دقت کنید و شرط خودتون رو قاطی شرط قبلی اضافه کنید.
مثلاً اینطوری:
کد:
if (charCode > 31 && (charCode < 48 || charCode > 57 || charCode == 43))
return false;
return true;
}
البته این کد به نظرم یکم غیر اصولی میاد و شاید می تونست شرط رو بهتر و اصولی تر هم بنویسه.