Вытянуть подстроку из строки от "а" до "б"
Подскажите, ребята, как выдернуть из строки текст, который находится между известными символами?
Например на flex'e все делается довольно просто: var str = "OT=35434kfdoB" var j:String = str.slice(str.indexOf("OT="), str.indexOf("B")); В итоге j = "35434kfdo"; Искал на разных сайтах, не вижу ничего подобного. Метод slice в javascript'e, как я понял позволяет задавать только индекс символа в численном виде. Как по-другому реализовать данную задачу? P.S. строка меняется, поэтому я не знаю с какой до какой позиции применять slice. |
alert( "OT=35434kfdoB".replace(/OT=(.*)B/, '$1') ); |
Спасибо за отклик, но видимо я недостаточно точно очертил суть.
Я получаю запросом каждый раз разную строку, содержащую нужные мне числа. Например: Result=ok Price=23423.54 Bonus=4645.12 Мне нужно получить в две разные переменные эти два числа. Но строка меняется, иногда приходит просто: Price=22323.74 Bonus=6545.56 |
var str = "OT=35434kfdoB"
var j = str.slice(str.indexOf("OT=")+3, str.indexOf("B")); //3 - длина "OT=", ибо indexOf в js возвращает вхождение подстроки
alert(j)
Но обычно делают используют регулярки:
var str='Result=ok\nPrice=23423.54\nBonus=4645.12'
var j = str.match(/Price=([\d\.]+)[\s\S]*Bonus=([\d\.]+)/)
alert(j.join('\n--\n'))
|
Спасибо, Aetae!
То что надо. |
function parseString( str ) {
var res = {};
var lineList = str.split("\n");
for ( var i = 0, line; typeof(line = lineList[i++]) == 'string'; ) {
if ( /^\s*$/.test( line ) ) { continue; }
var lineSplit = line.split("=");
if ( "1" in lineSplit ) {
res[ lineSplit[0] ] = lineSplit[1];
}
}
return res;
}
|
| Часовой пояс GMT +3, время: 06:32. |