كيفية إضافة مسافة في سلسلة جافا سكريبت


الاجابه 1:

كما أشارت إجابة أخرى إلى أن "المسافات بين" حرف واحد لا معنى لها. ومع ذلك ، إذا كنت تريد مسافات * حول * هذا الحرف ، فهناك خيار آخر يجب مراعاته وهو Regex.

Regex ، أو * Regular Expressions * ، هو تنسيق سلسلة خاص مفيد كتنسيق الاستعلام. يمكن قراءة الكثير عن regex على MDN

توثيق

، ولكن جمالها هو أنها أداة قوية جدًا وقوية جدًا.

على سبيل المثال ، إذا قمنا بتقسيم السلسلة على الحرف `/` ، ثم أعدنا ضمها باستخدام "/" (مسافة-مائلة-مسافة) ، فمن المحتمل أن نواجه مشكلة. ماذا لو قام المستخدم بالفعل بإضافة مسافات هناك؟ لقد ضاعفنا التباعد.

بدلاً من ذلك ، باستخدام regex ، يمكننا أن نقول "بهذه السلسلة ، عندما يصادف طلب البحث كلمة * متبوعة مباشرة بشرطة مائلة متبوعة مباشرة بكلمة أخرى * (أي بدون مسافات) ، ثم استبدلها بهذا. إليك كيف قد يبدو ذلك:

"الفئة / الفئة الفرعية". الاستبدال (/ (\ w +) \ / (\ w +) / g، '$ 1 / $ 2')؛

وهذا كل شيء. يحدد هذا السطر سلسلة للاختبار عليها (`الفئة / الفئة الفرعية`) ، ثم يستخدم استبدال. التعبير العادي هو ذلك الجزء الأول: `/ (\ w +) \ / ((\ w +) / g` ، وهذا هو الجزء الأكثر إرباكًا في الأمر برمته. دعنا نحلله:

  • `/ ... / g` - هذه علامة للتعبير النمطي ، و" g "يشير إلى أنه إذا واجه أكثر من واحد ، فاستبدلهم جميعًا.
  • "(\ w +)" - هذه في الواقع ثلاث قطع منفصلة. تنشئ "(...)" مجموعة التقاط * ، مما يسمح لنا بتذكر كل ما نطابقه داخلها. يشير `\ w` إلى حرف من نوع الكلمة ، وهو حرف" بدون مسافة بيضاء ". و "+" تقول "كل أحرف نوع الكلمة في صف" (أي بين أحرف المسافات أو أحرف التحكم.
  • "\ /" - هذا يتيح لنا مطابقة الشرطة المائلة. هذه شخصية تحكم ، لذا نحتاج إلى * الهروب * منها ، وهي الشرطة المائلة للخلف.

لذلك ، في المجموع. يقول هذا السطر "اعثر * وتذكر * كلمة متبوعة مباشرة بشرطة مائلة وكلمة ثانية * مائلة * أيضًا."

لماذا نقول لمحرك جافا سكريبت أن يتذكر تلك الكلمات؟ لأنه ، باستخدام `replace (...)` ، يتيح لنا التعبير العادي الخاص بنا تحديد * نمط *. في السلسلة التي تعد المعلمة الثانية لـ `replace (...)` ، نحدد `$ 1` و` $ 2` - هاتان مجموعتي الالتقاط اللتين طلبنا تذكرهما. هنا ، نحن نقول "الآن ، استخدم تلك الكلمة الأولى التي تم تذكرها ، وأضف مسافة وشرطة مائلة ، وأدخل الكلمة الثانية التي يتم تذكرها.

إنه يحدث كثيرًا ، وهو ليس موضوعًا للمبتدئين ، لكنه قوي جدًا. ستحل تعبيراتنا العادية أعلاه فقط محل الشرطات المائلة التي * لا * تحتوي بالفعل على مسافات حولها ، تاركة تلك التي بها مسافات بمفردها.

بالإضافة إلى ذلك ، يتجنب هذا الخطوة الإضافية المتمثلة في إجبار السلسلة على مصفوفة والعودة إلى سلسلة نصية. فقط بلدي 0.02


الاجابه 2:

يمكنك استخدام تعبير عادي لاستبدال / s * /// s * بـ "/".

تفصيل التعبير النمطي:

/ s * تعني مسافة بيضاء صفر أو مرات أكثر

// تعني "/" ، ولكن يجب تخطي "/". للأسف مع آخر /

ثم هناك آخر / ق *.

لذلك نستبدل هنا تسلسلًا من صفر أو أكثر من المسافات البادئة ، متبوعًا بـ "/" متبوعًا بصفر أو أكثر من المسافات اللاحقة بعلامة "/"


الاجابه 3:

لست متأكدًا تمامًا من أنني أفهم المقصود بإضافة مسافات بين الحرف "/" لكنني أفترض أنك تريد تحويل شيء مثل "مثال / مثال" إلى "مثال / مثال". إذا كان هذا هو الحال ، يمكنك استخدام

String.prototype.split ()

معا مع

Array.prototype.join ()

:

const str = "مثال / مثال / مثال" ؛console.log (str.split ('/'). Join ('/') ؛// الناتج المتوقع:// "example / example / example"

تقوم طريقة split () بتحويل السلسلة إلى مصفوفة من السلاسل ، عن طريق فصل السلسلة عند كل مثيل لسلسلة فاصلة محددة. في هذه الحالة ، يكون الفاصل ببساطة "/"

ينشئ التابع () سلسلة نصية جديدة ويعيدها من خلال ربط جميع العناصر في المصفوفة ، مفصولة بسلسلة فاصلة محددة. في هذه الحالة ' / '


الاجابه 4:

a2a

تعد معالجة السلاسل واستبدال الأحرف من مهام JS الشائعة جدًا ، وأنا أقوم بها كثيرًا. أنا أستخدم regex مع "String.prototype.replace" ، استعلام regex المقترح والتنفيذ أسهل وأكثر وضوحًا.

console.log ('hello / cruel / world'.replace (/ [/] / g،' / ')) ؛المطبوعات: مرحبًا / قاسي / عالم

ملاحظة: لا يأخذ هذا التعبير العادي في الاعتبار المسافات الإضافية التي قد تكون موجودة بالفعل ، ولكن لم يتم توفير هذه المعايير في السؤال. لكن في كود الإنتاج ، سأحسب المساحات الإضافية المحتملة في هذه الحالة ، تحتاج إلى تعبير معتاد أكثر تقدمًا يستخدم مظهرًا سلبيًا وتراجعًا خلفيًا.

var regex = / (؟console.log ('slash / spaced / but / add / here'.replace (regex،' / ')) ؛المطبوعات: شرطة مائلة / متباعدة / لكن / ليس / هنا

الاجابه 5:

الشرطة المائلة للأمام '/' ليست حرفًا خاصًا ، لذا تتم إضافة المسافة بالطريقة المعتادة عن طريق الضغط على مفتاح المسافة. يجب أن يكون هذا هو الحال ما لم أفهم تمامًا ما تحاول الإشارة إليه.


الاجابه 6:

يمكنك استخدام القوالب الحرفية لتنسيق أي شيء في es6 javascript. هذه هي أفضل طريقة لاستخدام جميع الرموز دون الحاجة إلى استخدام أحرف الهروب.


الاجابه 7:

var mystring = "hello / amazing / world" ؛

mystring.split ("/"). انضم ("/") ؛

أو

mystring = mystring.replace ("/" ، "/") ؛


الاجابه 8:

٪ 20 يجب أن تعمل.