MaxReve نشر 8 نوفمبر 2015 أرسل تقرير نشر 8 نوفمبر 2015 أحتاج إلى دالة تختبر لي فيما إذا كانت السلسلة النصية تحتوي على عدد صحيح أم لا، أي إذا كانت تحتوى على عدد صحيح سوف ترجع لي true وسترجع false إذا كان عكس ذلك. اقتباس
0 MaxReve نشر 8 نوفمبر 2015 الكاتب أرسل تقرير نشر 8 نوفمبر 2015 هنالك عدة طرق لاختبار ما إذا كانت السلسلة نصية تحتوي على عدد صحيح أو لا في روبي وأبسط مثال لمعرفة ذلك هي عن طريق استخدام التعابير النمطية كما في المثال التالي الذي قمنا فيه بإنشاء صنف بداخله دالة الاختبار:class String def is_i? !!(self =~ /\A[-+]?[0-9]+\z/) end end كما يمكنك كتابة المثال السابق بطريقة أخرى كما في هذا المثال الثاني:class String def is_i? /\A[-+]?\d+\z/ === self end end وفي حالة ما أردت أن تتأكد من الأرقام الموجبة فقط يمكنك استعمال هذا المثال: if !/\A\d+\z/.match(string_to_check) #Is not a positive number else #Is all good ..continue end اقتباس
0 Ali Haidar Ahmad نشر 1 أبريل 2022 أرسل تقرير نشر 1 أبريل 2022 يمكنك إنجاز ذلك كالتالي: def is_number? string true if Float(string) rescue false end الاستدعاء: my_string = '12.34' is_number?( my_string ) # => true أيضًا يمكنك أن تعرّف هذه الدالة، بحيث تكون قادراً على استدعائها مباشرة من خلال الصنف String كالتالي: class String def is_number? true if Float(self) rescue false end end بالتالي يكون استدعائها بالشكل: my_string.is_number? # => true أو يمكنك تعريفها بالشكل إذا كنت تريد التعامل مع الأعداد الصحيحة فقط: def is_num?(str) !!Integer(str) rescue ArgumentError, TypeError false end اقتباس
السؤال
MaxReve
أحتاج إلى دالة تختبر لي فيما إذا كانت السلسلة النصية تحتوي على عدد صحيح أم لا، أي إذا كانت تحتوى على عدد صحيح سوف ترجع لي true وسترجع false إذا كان عكس ذلك.
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.