2017-01-04 20 views
2

У меня есть следующая строка:Получить все строки между 2 символами

"The length must be between <xmin> and <xmax> characters" 

Я пытаюсь получить все слова/строки, которое между <> Но с моим кодом я получаю только следующее:

xmin> and <xmax 

Это мой код:

var srctext = "The length must be between <xmin> and <xmax> characters"; 
 
    var re = srctext.match(/\<(.*)\>/).pop(); 
 
    console.log(re);

Как я могу получить как xmin, так и xmax?

ответ

3

Использовать non-greedy регулярное выражение, чтобы соответствовать наименее.

var srctext = "The length must be between <xmin> and <xmax> characters"; 
 
var re = srctext.match(/<(.*?)>/g); 
 
console.log(re);

или использовать negated character class

var srctext = "The length must be between <xmin> and <xmax> characters"; 
 
var re = srctext.match(/<([^>]*)>/g); 
 
console.log(re);


UPDATE: К получить захваченное значение, когда regex содержит g (глобальный) флаг использовать RegExp#exec метод с циклом while.

var srctext = "The length must be between <xmin> and <xmax> characters", 
 
    regex=/<([^>]*)>/g, 
 
    m,res=[]; 
 

 
while(m=regex.exec(srctext)) 
 
    res.push(m[1]) 
 
    
 
console.log(res);

+1

О ждать. Ты прав. –