2016-06-01 2 views
-2

Мне нужно сопоставить elementId с любыми другими идентификаторами подэлементов, которые начинаются с elementId. Например, Подэлементы имеют свои идентификаторы, обозначенные как 1-1, 1-2, ..., 4-5, ..., 8-13 и т. Д. Итак, если Element ID равен 2, мне нужно получить все вспомогательные элементы этого элемента путем фильтрации (результат должен быть 2-1, 2-2, 2-3, ...) Я попытался использовать этот шаблон, но он не работает.JavaScript RegExp для соответствия ElementId

var regEx = '/['+elementId+']*/'; 
//elementsId is a var derived from a previous expression 

Чтобы соответствовать этому, что такое шаблон RegExp, который я должен использовать? Я предоставил сегмент кода ниже.

jsPlumb.draggable(newAgent, { 
       containment: 'parent' 
      }); 
      newAgent.on('click', '.cancel', function (e) { 

       alert(newAgent.attr('id')); 
       var elementId= newAgent.attr('id'); 
       var regEx = '/['+elementId+']*/'; 
       alert (regEx); 

       for(var m=0; m<list.length; m++) 
       { 
        if(list[m][0].exec(regEx) || list[m][1].exec(regEx)) 
        { 
         alert('Deleting connection between ' + list[m][0] + '&' + list[m][1]); 
        } 
       } 

       jsPlumb.detachAllConnections(newAgent.attr('id')); 
       jsPlumb.removeAllEndpoints(newAgent.attr('id')); 
       jsPlumb.detach(newAgent.attr('id')); 
       $(newAgent).remove(); 
      }); 
+0

var regEx = '/ \\ [' + elementId + '[^ \\]] * \\] /'; try this regex –

ответ

0

Вы можете построить регулярное выражение с помощью конструктора, зная, что вам нужно бежать вручную специальные символы: link

var ids = ["1-1", "2-1", "2-2", "3-1", "3-2", "3-3", "3-4", "3-5"]; 
 

 
var buildRegex = function(id) { 
 
    return new RegExp(id + '\\-\\d+'); 
 
} 
 

 
for (var i = 1; i <= 3; ++i) { 
 
    var reg = buildRegex(i); 
 
    for (var k = 0; k < ids.length; ++k) { 
 
    if (reg.test(ids[k])) { 
 
     console.log(ids[k] + " is a sub element of " + i); 
 
    } 
 
    } 
 
}

+0

Спасибо. Работает сейчас. –

0

Я думаю, что ваш Regex должен быть равен: '^' + elementId + '-'.
это проверит элементы, которые начинаются с elementid-

Смежные вопросы