اذهب إلى المحتوى
  • 0

كيف أتأكد من أن الرابط صحيح في روبي؟

MaxReve

السؤال

هل هنالك تابع أو طريقة معينة في لغة روبي للتأكد من رابط معين ما إذا كان صحيحا أم لا؟
مثال بسيط عن الرابط الصحيح والخاطئ:

http://hello.it => yes
http:||bra.ziz, => no
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

هنالك عدّة طرق للتأكد من رابط معين في روبي، على سبيل المثال استخدام وحدة URI الموجودة مع وحدات روبي القياسية وربطها مع جملة شرطية if  حتى تتمكن من القيام بأوامر معين عند تحقق الشرط (صحة الرابط) كما في المثال التالي:

require 'uri'

if url =~ URI::regexp
    # Correct URL
end

كما يمكنك استخدام وحدة addressable والتي أجدها أذكى في التعامل مع الروابط عن طريق إنشاء دالة كما في المثال التالي:

require 'addressable/uri'

SCHEMES = %w(http https)

def valid_url?(url)
  parsed = Addressable::URI.parse(url) or return false
  SCHEMES.include?(parsed.scheme)
rescue Addressable::URI::InvalidURIError
  false
end

المصدر

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

اعتقد أن استخدام التعابير المنتظمة في هذه الحالة سيعطيك دقة أكبر قليلاً:

URI::DEFAULT_PARSER.regexp[:ABS_URI]

سيؤدي ذلك إلى إلغاء عناوين URL التي تحتوي على مسافات، على عكس URI.regexp الذي يسمح بالمسافات.
إضافةً إلى ذلك، للتحقق مما إذا كانت السلسلة عبارة عن عنوان URL، استخدم:

url =~ /\A#{URI::regexp}\z/

إذا كنت تريد فقط التحقق من عناوين URL على الويب (http أو https) ، فاستخدم هذا:

url =~ /\A#{URI::regexp(['http', 'https'])}\z/

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...