@ivan_kholodov

Как передать регулярку для метода replace и вызвать его в другом файле?

Всем привет! У меня такой вопросик:
есть функция которая принимает в качестве параметра один аргумент - объект
1-й модуль (здесь объявляются несколько функций где одна используется для другой)

function mainFunc = ({one, two, three, arr}) {
  const replacePath = arr.map(({ path }) => (
    path: strReplace(path)
  ))
}

function strReplace = (str) {
  return str
    .replace(что-то заменяем)
    .replace(eщё что меняем)
}

* экспортируется только одна функция из модуля (mainFunc)

2-й модуль:
эта функция импортируется и запускается

mainFunc({one: some, two: someTwo, three: someThree, arr})


Теперь вопрос:
Мне нужно добавить ещё один параметр в функцию mainFunc, чтобы если он есть, то применился ещё один replace в методе strReplace?
Я пытаюсь передать вот так, но не заводиться (

1-й модуль:

function mainFunc = ( {one, two, three, arr}, other = {} ) {
  const replacePath = arr.map(({ path }) => (
    path: strReplace(path, other.anotherReplace)
  ))
}

function strReplace = (str, anotherReplace = null) {
  return str
    .replace(что-то заменяем)
    .replace(eщё что меняем).replace(anotherReplace)
}

2-й модуль:
mainFunc({one: some, two: someTwo, three: someThree, path}, { anotherReplace: `/\(\.\*\)$/, ':name'` })


Что я делаю не так? ))
или может 2 вопроса отсюда выходящих, как передать правильно регулярку? И как запускать метод (replace) если нужно его запустить

P.s Если передать сразу при вызове типо anotherReplace: replace(/\(\.\*\)$/, ':name') } а потом попробовать вызвать вот так
function strReplace = (str, anotherReplace = null) {
  return str
    .replace(что-то заменяем)
    .replace(eщё что меняем)[anotherReplace]
}


то тоже не работает
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Парень, учи js, начни с основ. Ты не понимаешь, что ты делаешь.

1. anotherReplace: [/\(\.\*\)$/, ':name']
2.
function strReplace = (str, anotherReplace = null) => {
  str = str
    .replace(что-то заменяем)
    .replace(eщё что меняем);
  if (anotherReplace) 
    str = str.replace(anotherReplace[0], anotherReplace[1]);
  return str;
}

Это решит текущую "проблему", но если ты не изучишь основы - ты снова споткнёшься через десяток строк.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
john36allTa
@john36allTa
alien glow of a dirty mind
// описать строкой, к примеру
let regex = '[A-Z]{2}'
// если флаги явно обозначить не удается, то описать также их
let flags = 'gm'
// Делаем, собственно, regex объект
string.replace(new RegExp(regex, flags), '00')
Ответ написан
Ваш ответ на вопрос

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

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