Avatar ·

كيفية التحقق مما إذا كانت السلسلة النصية في JavaScript رقمًا صالحًا؟

```html

مرحباً بالجميع! أنا مبتدئ في JavaScript وأقوم بكتابة تطبيق صغير لآلة حاسبة. يقوم المستخدم بإدخال قيم في حقول نصية، وأحتاج للتأكد من أن البيانات المدخلة هي أرقام قبل إجراء العمليات الحسابية.

المشكلة أنني لا أستطيع ابتكار طريقة موثوقة للتحقق. استخدمت typeof — لكنه يُظهر "string" لكل ما يأتي من input. جربت isNaN() — لكنه يتصرف بشكل غريب: isNaN("123") يُرجع false (جيد)، لكن isNaN("12.3abc") يُرجع أيضاً false، مع أنه بوضوح ليس رقماً! وأيضاً isNaN("") يُرجع false، السلسلة الفارغة تُعتبر رقماً — هذا غير مفهوم تماماً.

أيضاً جربت Number(" ") — فهو يُرجع 0، مما يسبب الارتباك أيضاً. وسمعت عن parseFloat و parseInt، لكنهما يقصّان السلسلة ويُرجِعان رقماً إذا كانت السلسلة تبدأ بأرقام، مثلاً parseFloat("123abc") سيعيد 123 — وهذا أيضاً ليس ما أحتاجه. أنا بحاجة إلى تطابق صارم: السلسلة بأكملها يجب أن تكون رقماً، دون أحرف إضافية.

هذا هو الكود الذي جربته حتى الآن:

// هنا الكود الخاص بي
function validateInput(value) {
    // لا تقم بتغيير هذا السطر
    return !isNaN(value) && value.trim() !== '';
}

أحتاج إلى نصيحتكم يا خبراء! ربما هناك طريقة أفضل؟ وكيف تتعاملون مع حالات مثل المسافات أو السلاسل الفارغة أو السلاسل التي تحتوي على أرقام وأحرف معاً؟

```

لا توجد إجابات بعد.

تسجيل الدخول لترك إجابة

المدونات