كيفية تحويل سلسلة إلى رقم في JavaScript (مع أمثلة)

تحويل السلاسل إلى أرقام

تقوم parseInt()الدالة بتوزيع وسيطة سلسلة وترجع عددًا صحيحًا من الجذر المحدد (الأساس في أنظمة الأرقام الرياضية).

parseInt(string, radix);

المعلمات

string

القيمة المطلوب تحليلها. إذا stringلم تكن الوسيطة سلسلة ، فسيتم تحويلها إلى سلسلة (باستخدام ToStringالعملية المجردة). يتم تجاهل المسافة البيضاء البادئة في وسيطة السلسلة. '= radix عدد صحيح بين 2 و 36 يمثل الجذر (الأساس في أنظمة الأرقام الرياضية) للسلسلة المذكورة أعلاه. حدد 10نظام العد العشري الذي يشيع استخدامه من قبل البشر. حدد دائمًا هذه المعلمة للتخلص من ارتباك القارئ ولضمان سلوك يمكن التنبؤ به. تؤدي التطبيقات المختلفة إلى نتائج مختلفة عندما لا يتم تحديد الجذر ، وعادةً ما يتم تعيين القيمة بشكل افتراضي إلى 10. قيمة الإرجاع عدد صحيح يتم تحليله من السلسلة المحددة. إذا تعذر تحويل الحرف الأول إلى رقم ، فسيتم NaNإرجاعه.

وصف

و parseIntظيفة تحويل الحجة الأولى لسلسلة، يوزع عليه، وتقوم بإرجاع عدد صحيح أو NaN. إذا لم يكن الأمر كذلك NaN، فستكون القيمة التي تم إرجاعها هي العدد الصحيح الذي يمثل الوسيطة الأولى المأخوذة كرقم في الجذر المحدد (الأساس). على سبيل المثال ، يشير الجذر 10 إلى التحويل من رقم عشري ، 8 ثماني ، 16 ست عشري ، وهكذا. بالنسبة للأشعاع أعلاه 10، تشير الأحرف الأبجدية إلى أرقام أكبر من 9. على سبيل المثال ، للأرقام السداسية العشرية (الأساس 16) ، يتم استخدام Aخلال F.

إذا parseIntواجه حرفًا ليس رقمًا في الجذر المحدد ، فإنه يتجاهله وجميع الأحرف التالية ويعيد قيمة العدد الصحيح التي تم تحليلها حتى تلك النقطة. parseIntاقتطاع الأرقام إلى قيم صحيحة. مسموح بمسافات بادئة وزائدة.

نظرًا لأن بعض الأرقام تتضمن eالحرف في تمثيل السلسلة (على سبيل المثال 6.022e23) ، فإن استخدام parseIntاقتطاع القيم الرقمية سيؤدي إلى نتائج غير متوقعة عند استخدامها على أرقام كبيرة جدًا أو صغيرة جدًا. parseIntلا ينبغي أن تستخدم كبديل ل Math.floor().

إذا كان الجذر هو undefined0 (أو غير موجود ) ، فإن JavaScript يفترض ما يلي:

  • إذا stringبدأ الإدخال بـ "0x" أو "0X" ، يكون الجذر 16 (سداسي عشري) ويتم تحليل باقي السلسلة.
  • إذا stringبدأ الإدخال بـ "0" ، فإن الجذر هو ثمانية (ثماني) أو 10 (عشري). بالضبط أي أساس يتم اختياره يعتمد على التنفيذ. يحدد ECMAScript 5 أنه يتم استخدام 10 (عشري) ، ولكن ليست كل المتصفحات تدعم هذا بعد. لهذا السبب ، حدد دائمًا أساسًا عند استخدام parseInt.
  • إذا stringبدأ الإدخال بأي قيمة أخرى ، يكون الجذر هو 10 (عشري).
  • إذا كان الحرف الأول لا يمكن تحويله إلى رقم ، فإن parseInt تُرجع NaN.

لأغراض حسابية ، فإن قيمة NaN ليست رقمًا في أي جذر. يمكنك استدعاء دالة isNaN لتحديد ما إذا كانت نتيجة parseInt هي NaN. إذا تم تمرير NaN إلى العمليات الحسابية ، فستكون نتائج العملية أيضًا NaN.

لتحويل الرقم إلى سلسلته الحرفية في أصل معين ، استخدم intValue.toString (الجذر).

أمثلة

باستخدام parseIntالأمثلة التالية تعود جميعها 15:

parseInt(' 0xF', 16); parseInt(' F', 16); parseInt('17', 8); parseInt(021, 8); parseInt('015', 10); // parseInt(015, 10); will return 15 parseInt(15.99, 10); parseInt('15,123', 10); parseInt('FXX123', 16); parseInt('1111', 2); parseInt('15 * 3', 10); parseInt('15e2', 10); parseInt('15px', 10); parseInt('12', 13);

جميع الأمثلة التالية تعود NaN:

parseInt('Hello', 8); // Not a number at all parseInt('546', 2); // Digits are not valid for binary representations

جميع الأمثلة التالية تعود -15:

parseInt('-F', 16); parseInt('-0F', 16); parseInt('-0XF', 16); parseInt(-15.1, 10) parseInt(' -17', 8); parseInt(' -15', 10); parseInt('-1111', 2); parseInt('-15e1', 10); parseInt('-12', 13);

جميع الأمثلة التالية تعود 4:

parseInt(4.7, 10); parseInt(4.7 * 1e22, 10); // Very large number becomes 4 parseInt(0.00000000000434, 10); // Very small number becomes 4

يعود المثال التالي 224:

parseInt('0e0', 16);

معلومات اكثر:

تحليل المعلومات على MDN

  • يحاول كل من parseInt () و parseFloat () تحويل السلسلة إلى رقم إن أمكن. فمثلا،var x = parseInt("100"); // x = 100
  • سيتم تحويل الرقم () إلى رقم يمكن تمثيل القيمة به. يتضمن ذلك التواريخ في عدد المللي ثانية منذ منتصف ليل 1 يناير 1970 بالتوقيت العالمي المنسق ، والقيم المنطقية إلى 1 أو 0 ، والقيم التي لا يمكن تحويلها إلى رقم يمكن التعرف عليه ستصبح NaN. هذا يعني ليس رقمًا وهو أيضًا رقم تقنيًا!