Получение текста между двумя одинаковыми символами
Добрый день, помогите разобраться как правильно выдернуть нужное из текста.
Есть массив с нужным текстом: var arr = ['пчелка жопка вес:0,02:кг', 'одуванчик тараканчик вес:0,0001:кг', 'блошка махнушка вес :0,00001:кг']; Нужно вытянуть текст между ':тест:' Конкретно строку можно вытянуть так:
alert(getSubStr('пчелка жопка вес:0,02:кг', ':'));
function getSubStr(str, delim) {
var a = str.indexOf(delim);
if (a == -1)
return '';
var b = str.indexOf(delim, a+1);
if (b == -1)
return '';
return str.substr(a+1, b-a-1);
}
А как весь массив вытянуть таким образом?:-? Пробовал так, но где то ошибся, выходит только первая строка:
var arr = ['пчелка жопка вес:0,02:кг', 'одуванчик тараканчик вес:0,0001:кг', 'блошка махнушка вес :0,00001:кг'];
alert(getSubStr(arr, ':'));
function getSubStr(str, delim) {
for( var i = 0; i < str.length; ++i ){
var a = str[i].indexOf(delim);
if (a == -1)
return '';
var b = str[i].indexOf(delim, a+1);
if (b == -1)
return '';
return str[i].substr(a+1, b-a-1);
}
};
|
var arr = ['пчелка жопка вес:0,02:кг', 'одуванчик тараканчик вес:0,0001:кг', 'блошка махнушка вес :0,00001:кг']; alert(/\d,\d+/.exec(arr[1])) |
Цитата:
var arr = ['пчелка жопка вес:0,02:кг', 'одуванчик тараканчик вес:0,0001:кг', 'блошка махнушка вес :0,00001:кг'];
alert(getSubStr(arr));
function getSubStr(str) {
for( var i = 0; i < str.length; ++i ){
var r = /\d,\d+/.exec(str[i]);
return r;
}
};
опять выходит только одно значение, для пояснения нужен вид :
alert('0,02, 0,0001, 0,00001');
|
Цитата:
Помещайте все найденное циклом в массив и возвращайте массив, получится нужное. |
И как
/\d,\d+/.exec(arr)понимает где у меня там двоеточие? магия какая то :blink: |
Цитата:
var arr = ['пчелка жопка вес:0,02:кг', 'одуванчик тараканчик вес:0,0001:кг', 'блошка махнушка вес :0,00001:кг'];
var num = arr.map(function(e) {
return /\d,\d+/.exec(e)
})
alert(num)
|
Цитата:
var arr = ['пчелка жопка 1,1 вес:0,02:кг', 'одуванчик тараканчик 1,2 вес:0,0001:кг', 'блошка махнушка 1,3 вес :0,00001:кг'];
var num = arr.map(function(e) {
return /\d,\d+/.exec(e)
})
alert(num)
|
Если еще есть, тогда можно так:
var arr = ['пчелка жопка вес:0,02:кг', 'одуванчик 1,1 тараканчик вес:0,0001:кг', 'блошка махнушка 3,56 вес :0,00001:кг'];
var num = arr.map(function(e) {
return /:(\d+,\d+):/.exec(e)[1]
})
alert(num.join('\n'))
|
laimas,
Идеально, спасибо :yes: |
| Часовой пояс GMT +3, время: 07:00. |