كيف تتحقق بشكل صحيح مما إذا كانت السلسلة النصية رقمًا في JavaScript؟ دالة IsNumeric()
مرحبًا بالجميع! أكتب بلغة JavaScript وواجهت مشكلة نموذجية — أريد التحقق مما إذا كانت القيمة التي أدخلها المستخدم هي رقم. على سبيل المثال، هناك نموذج حيث يدخل المستخدم سعر المنتج، وأريد التأكد من أنه رقم وليس نصًا.
جربت استخدام isNaN()، لكنه يتصرف بغرابة. على سبيل المثال:
console.log(isNaN('123')); // false — يبدو رقمًا
console.log(isNaN('12.3')); // false — رقم أيضًا
console.log(isNaN('')); // false — السلسلة الفارغة تُعتبر رقمًا؟!
console.log(isNaN(' ')); // false — المسافات أيضًا رقم؟
console.log(isNaN('abc')); // true — هذا مفهوم
console.log(isNaN(true)); // false — true=1، هل هذا رقم؟!
console.log(isNaN(null)); // false — null=0، هل هذا رقم أيضًا؟!
أريد أن تعيد الدالة IsNumeric() القيمة true فقط للأرقام العشرية العادية (الصحيحة والكسرية بنقطة)، وبالنسبة للسلسلة الفارغة والمسافات والقيم المنطقية وnull وundefined وأي بيانات غير مرغوب فيها — false.
أيضًا، أود أن تدعم الأرقام السالبة