TheBrain نشر 25 يناير 2016 أرسل تقرير نشر 25 يناير 2016 أحصل على أسماء الملفات من المستخدم وبالطبع هذه الطريقة تسبب الكثير من الأخطاء لذلك أريد تعديل السلاسل النصية المدخلة وحذف كل شيء ما عدا الحروف والأرقام ورموز – و _فلو كانت السلسلة النصية كالتالي:my§document$is°° very&interesting___thisIs%nice445.doc.pdfأريد تحويلها إلى:my_document_is_____very_interesting___thisIs_nice445_doc.pdf اقتباس
0 هشام رزق الله نشر 25 يناير 2016 أرسل تقرير نشر 25 يناير 2016 يوجد عدة طرق في روبي لفعل ذلك، فيمكنك على سبيل إنشاء دالة عن طريق استخدام التعابير النمطية لحذف جميع الحروف واستبدال الرموز برمز _ كما وضعته في مثالك، وهذا سيكون كالتالي:def sanitize_filename(filename) returning filename.strip do |name| name.gsub!(/^.*(\\|\/)/, '') name.gsub!(/[^0-9A-Za-z.\-]/, '_') end end ويمكنك أيضا استخدام هذه الطريقة أيضا:def sanitize_filename(filename) fn = filename.split /(?<=.)\.(?=[^.])(?!.*\.[^.])/m fn.map! { |s| s.gsub /[^a-z0-9\-]+/i, '_' } return fn.join '.' end أما لو كنت تستخدم ريلز فإن هنالك حل أسهل بكثير وذلك عن طريق استخدام تابع parameterize كما في المثال التالي:"my§document$is°° very&interesting___thisIs%nice445.doc.pdf".parameterize اقتباس
السؤال
TheBrain
أحصل على أسماء الملفات من المستخدم وبالطبع هذه الطريقة تسبب الكثير من الأخطاء لذلك أريد تعديل السلاسل النصية المدخلة وحذف كل شيء ما عدا الحروف والأرقام ورموز – و _
فلو كانت السلسلة النصية كالتالي:
أريد تحويلها إلى:
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.