Нужна помощь с JS



  • Пытаюсь создать модуль который будет принимать массив и регулярное выражение.
    Проходить регуляркой по массиву.
    И отдавать результат в виде массива.

    Но проблема в строке с регулярным выражением, не получается подставить в метод match() регулярку в виде переменной

    var tmp = currentValue.match(regex)
    

    Сам код

    Результат получается null

    Я так понял это потому что регулярка записана как строка

    var reg = /\/d+/gm //регулярка
    var reg = "/\/d+/gm" //регулярка как строка
    

    Помогите решить проблему!



  • Кое как решил)
    Если кому интересно
    MDN Web Docs

    Готовый код

    var arr = [[LIST9090]]
    var regex = [[REGEX7878]] //надо экранировать перед вводом!
    var reg = new RegExp(regex);
    var res = [];
    
    arr.forEach(function callback(currentValue, index, array) {
        var tmp = currentValue.match(new RegExp(regex, "gm"))
        if(tmp !== null){
          res.push(tmp[0])
        }
        
    });
    [[RES556]] = res;
    


  • @mansory333 бас хитрее делает он не экранирует он эскейпит
    составляете ее так же как обычно а потом ее .escape()
    Но вам не надо добавлять в регулярку для баса служебные операторы) gm это область применения бас все это сам знает. Вы собственно решили задачу подав вторым аргументом gm
    Применение в басе js довольно специфичное ) некоторые вещи работают не так как ожидают я про механику выполнения, они просто работают иначе. фрейморк.
    upd 2 скорее всего это связанно что сам бас на С+ вроде


Log in to reply