كيفية استبدال كل تكرارات سلسلة في JavaScript

اكتشف الطريقة الصحيحة لاستبدال جميع تكرارات السلسلة في JavaScript عادي ، من regex إلى الأساليب الأخرى


باستخدام تعبير نمطي

سيؤدي هذا التعبير العادي البسيط إلى تنفيذ المهمة:

String.replace(/<TERM>/g, '')

هذا ينفذ أحساسية الموضوعالاستبدال.

هذا مثال ، حيث استبدل كل تكرارات كلمة "كلب" في السلسلةphrase:

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/g, '')

stripped //“I love my ! Dogs are great”

لإجراء استبدال غير حساس لحالة الأحرف ، استخدمiالخيار في regex:

String.replace(/<TERM>/gi, '')

مثال:

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.replace(/dog/gi, '')

stripped //“I love my ! s are great”

تذكر أنه إذا كانت السلسلة تحتوي على بعض الأحرف الخاصة ، فلن تعمل بشكل جيد مع التعبيرات العادية ، لذا فإن الاقتراح هو الهروب من السلسلة باستخدام هذه الوظيفة (مأخوذة منMDN):

const escapeRegExp = (string) => {
  return string.replace(/[.*+?^${}()|[\]\\]/g, '\\{{content}}amp;')
}

باستخدام الانقسام والانضمام

الحل البديل ، وإن كان أبطأ من regex ، يستخدم وظيفتين من JavaScript.

الأول هوsplit()، التي تقطع سلسلة عندما تعثر على نمط (حساس لحالة الأحرف) ، وتعيد مصفوفة بالعلامات المميزة:

const phrase = 'I love my dog! Dogs are great'
const tokens = phrase.split('dog')

tokens //["I love my ", “! Dogs are great”]

ثم تقوم بضم الرموز المميزة في سلسلة جديدة ، هذه المرة بدون أي فاصل:

const stripped = tokens.join('') //"I love my ! Dogs are great"

تغليف:

const phrase = 'I love my dog! Dogs are great'
const stripped = phrase.split('dog').join('')

المزيد من دروس js: