7.7 KiB
title | localeTitle |
---|---|
Spinal Tap Case | حنفية شبكية |
تذكر استخدام Read-Search-Ask
إذا واجهتك مشكلة. حاول إقران البرنامج واكتب الكود الخاص بك
شرح المشكلة:
قم بتحويل السلسلة المعطاة إلى جملة صغيرة بالكلمات المرتبطة بشُرط.
روابط ذات صلة
- كائن عالمي السلسلة
- شبيبة ريجكس الموارد
- JS String Prototype Replace
- JS String Prototype ToLowerCase
تلميح: 1
قم بتكوين تعبير عادي لكل المساحات البيضاء والشرطات السفلية.
حاول أن تحل المشكلة الآن
تلميح: 2
سيكون عليك أيضًا جعل كل شيء صغيرًا.
حاول أن تحل المشكلة الآن
تلميح: 3
الجزء الصعب هو الحصول على جزء التعبير العادي للعمل ، بمجرد القيام بذلك ، ثم مجرد تحويل الأحرف الكبيرة إلى أحرف صغيرة واستبدال المسافات مع الشرطات السفلية باستخدام replace()
.
حاول أن تحل المشكلة الآن
تنبيه المفسد!
الحل في المستقبل!
الحل الأساسي للكود:
`function spinalCase(str) { // Create a variable for the white space and underscores. var regex = /\s+|_+/g;
// Replace low-upper case to low-space-uppercase str = str.replace(/([az])([AZ])/g, '$1 $2');
// Replace space and underscore with - return str.replace(regex, '-').toLowerCase(); }
// test here spinalCase('This Is Spinal Tap'); `
شرح الشفرة:
- يحتوي regex على التعبير العادي
/\s+|_+/g
، والذي سيحدد كل المسافات البيضاء والشرطات السفلية. - يضع
replace()
الأولreplace()
مسافة قبل أي أحرف كبيرة تمت مصادفتها في str السلسلة بحيث يمكن استبدال المسافات بشُرط في وقت لاحق. - أثناء استعادة السلسلة ،
replace()
آخرreplace()
المسافات والشرطات السفلية باستخدام الشرطات باستخدام regex .
حل الشفرة المتوسطة:
`function spinalCase(str) { // Replace low-upper case to low-space-uppercase str = str.replace(/([az])([AZ])/g, '$1 $2'); // Split on whitespace and underscores and join with dash return str.toLowerCase().split(/(?:_| )+/) .join('-'); }
// test here spinalCase('This Is Spinal Tap'); `
شرح الشفرة:
- على غرار الحل الأول ، يضع
replace()
الأولreplace()
مسافة قبل أي أحرف كبيرة تمت رؤيتها في str السلسلة بحيث يمكن استبدال المسافات بشُرط في وقت لاحق. - بدلاً من استخدام
replace()
هنا لاستبدال whitespace والشرطات السفلية مع الشرطات ، يتمsplit()
السلسلةsplit()
على التعبير العادي/(?:_| )+/
وjoin()
-
على-
.
روابط ذات صلة
الحل المتقدم للكود:
`function spinalCase(str) { // "It's such a fine line between stupid, and clever." // --David St. Hubbins
return str.split(/\s|_|(?=[AZ])/).join('-').toLowerCase() } `
شرح الشفرة:
- تقسيم السلسلة في أحد الشروط التالية (تم تحويلها إلى صفيف )
- تم العثور على حرف مسافة بيضاء [
\s
] - تم اكتشاف حرف الشرطة السفلية [
_
] - أو متبوعاً بحرف كبير [
(?=[AZ])
]
- تم العثور على حرف مسافة بيضاء [
- الانضمام إلى الصفيف باستخدام واصلة (
-
) - أحرف صغيرة السلسلة الناتجة بأكملها
روابط ذات صلة
ملاحظات للمساهمات:
- لا تقم بإضافة حلول مشابهة لأي حلول موجودة. إذا كنت تعتقد أنها مشابهة ولكن أفضل ، فحاول دمج (أو استبدال) الحل المشابه الموجود.
- أضف شرحًا لحلك.
- تصنيف الحل في واحدة من الفئات التالية - الأساسي والمتوسط والمتقدم .
- الرجاء إضافة اسم المستخدم الخاص بك فقط إذا قمت بإضافة أي محتويات رئيسية ذات صلة . ( لا تزيل أي أسماء مستخدمين حالية )
نرى
Wiki Challenge Solution Template
كمرجع.