7.3 KiB
title, localeTitle
| 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كمرجع.

