@Tim308
Начинающий frontend-разработчик.

Как ключ объекта подставить в регулярку?

Имеется объект:
const obj = {className: 'test'}
И хочется подставить test в
let str = `<ul class="{{ className }}"</ul>`
Подставить хочу вот так:
for (let key in obj ) {
    str.replace(`/${key}/g`, obj[key];
}

Как я понял мешают кавычки у key.
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
mmmaaak
@mmmaaak
const obj = {className: 'test'}
let str = `<ul class="{{ className }}"/<ul>`
for (let key in obj ) {
    str = str.replace(new RegExp(key, 'g'), obj[key]);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Seasle
@Seasle Куратор тега JavaScript
\( ゚ヮ゚)/
const expression = /{{\s+?(\w+)\s+?}}/g;

const pasteParams = (string, params) => {
  return string.replace(expression, (match, key) => key in params
    ? params[key]
    : key
  );
};

pasteParams('<ul class="{{ className }}"></ul>', {
  className: 'my-class'
});
Ответ написан
Stalker_RED
@Stalker_RED
Вы подставляете строку вместо регулярного выражения.
Если нужно динамически составлять регулярки можно использовать new RegExp()


Еще лучше искать эти ваши "усы" регуляркой и уже из них получать ключ.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы