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

كيف أحذف الرموز الخاصة في ريلز؟

MaxReve

السؤال

استخدم التعابير النمطية لحذف الرموز كما في المثال التالي:

input = input.gsub(/<\/?[^>]*>/, '')

لكن في بعض الأحيان قد يقوم المستخدم بوضع رموز غريبة:

™ ☻

فكيف أستطيع حذف هذه الرموز الغريبة؟

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

Recommended Posts

  • 0

أعتقد أن أسهل حل لهذه المشكلة هي تعريف ما هي الحروف الصحيحة وحذف جميع الرموز غيرها، أما إذا كنت بحاجة إلى الأحرف الإنجليزية الكبيرة والصغيرة بالإضافة إلى الأرقام وتريد حذف كل الرموز المتبقية فيمكنك في هذه الحالة استخدام سطر مثل التالي عن طريق تابع gsub:

input = input.gsub(/[^0-9A-Za-z]/, '')

أما إذا أردت الحصول على أحرف آسكي ASCII فقط فيمكنك في هذه الحالة حذف جميع الحروف التي تملك ترتيب أكبر من 127 في جدول آسكي كما في المثال التالي:

original = "aøbauhrhræoeuacå"
cleaned = ""
original.each_byte { |x|  cleaned << x unless x > 127   }
cleaned   # => "abauhrhroeuac"
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك أيضًا استخدام parameterize الذي يقوم بحذف الأحرف الخاصة:

parameterize(string, separator: "-", preserve_case: false)  public

مثال:

'@!#$%^&*()111'.parameterize
 => "111" 

أو بواسطة الدالة scan، حيث يبحث التابع عن نمط محدَّد ضمن السلسلة النصية التي استدعيت معه ويعيد النتائج المتطابقة في مصفوفة أو يمرِّرها إلى الكتلة المعطاة ويعيد الناتج الذي تعيده.

scan(pattern)  array
scan(pattern) {|match, ...| block }  str

حيث أن pattern هو تعيبر نمطي أو سلسلة نصية يراد البحث عنها ومطابقتها في السلسلة النصية المعطاة. إن لم يحتوي هذا المعامل على مجموعات، فستتألف كل نتيجة فردية من السلسلة النصية المتطابقة (أي &$). أما إن احتوى على مجموعات، فستكون كل نتيجة فردية مصفوفة بحد ذاتها تحوي عنصر واحد لكل مجموعة.

مثال، سنستخدم هذه الدالة للحصول على السلسلة بدون الأحرف الخاصة:

original = "aøbæcå"
stripped = original.scan(/[a-zA-Z]/).to_s
puts stripped
# الخرج "abc"

 

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...