2014-05-29 2 views
3
function getBetween(content, start, end) { 
    var r = content.split(start); 
    if (1 in r) { 
     var z = r[1].split(end); 
     return z[0]; 
    } 
    return ''; 
} 

Здравствуйте, У меня есть следующие функции, которые я написал, что может получить строку между двумя строкамиJavascript функция getbetween несколько экземпляров

, например

var string = 'I am 30 years old'; 
var age = getBetween(string, 'I am ', ' years old'); 

Теперь, если строка было больше случаев в возрасте, например, если string был I am 30 years old I am 20 years old I am 50 years old

И т.д. и т. д. Мне было интересно, если там w как способ, чтобы получить 30, 20, 50 и любые другие матчи в массиве

ответ

1

Вы можете использовать эту функцию:

function getBetween(content, start, end) { 
    var arr = []; 
    content.replace(new RegExp(start + "(.+)" + end,"g"),function(m,g1){ arr.push(g1); return '';}); 
    return arr; 
} 

var output = getBetween('I am 30 years old I am 20 years old I am 50 years old', 'I am ', ' years old'); 

Выход:

["30", "20", "50"] 
0

Просто попробуйте:

function getBetween(content, start, end) { 
    var result = []; 
    var r = content.split(start); 
    for (var i = 1; i < r.length; i++) { 
     result.push(r[i].split(end)[0]); 
    } 
    return result; 
} 

var output = getBetween('I am 30 years old I am 20 years old I am 50 years old', 'I am ', ' years old'); 

Выход:

["30", "20", "50"] 
+0

Вы не против, если я скопирую ваш вход и вывод вправо? –

+0

@AmitJoki не стесняйтесь – hsz

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