Вытянуть подстроку из строки от "а" до "б"
Подскажите, ребята, как выдернуть из строки текст, который находится между известными символами?
Например на 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, время: 17:54. |