2015-07-02 2 views
0

У меня есть строка jquery, скажем x.Выбор части строки

x = '##_##Donec commodo imperdiet diam##_###, eget porttitor nisi blandit facilisis. Morbi vitae lectus id nunc ultricies tincidunt.'; 

Я хочу, чтобы выбрать часть строки между ## _ ## и ## _ ### т.е. «Донец Commodo imperdiet диам» из приведенного выше примера.

Заранее спасибо.

+1

'## _ ## (. *?) ## _ ###' или '# + _ # + (. *?) # + _ # +' И захватить нужную часть из индекса группы 1. Пожалуйста, сделайте поиск, прежде чем спрашивать. –

ответ

2

Я думаю, что вы можете сделать:

var res = str.split('##_##')[1].split('##_###')[0]; 
+0

Это я думал, но я уверен, что есть более эффективное решение, чем это. – Piyush

1

Вы можете попробовать это:

var myString = "##_##Donec commodo imperdiet diam##_###, eget porttitor nisi blandit facilisis. Morbi vitae lectus id nunc ultricies tincidunt."; 
var myRegexp = /##_##([^#]*)##_###/g; 
var match = myRegexp.exec(myString); 
console.log(match[1]); 
1

Это более общий код, как получить текст между 2 различными (но постоянными) разделителей в JS :

teststr = '##_##Donec commodo imperdiet diam##_###, eget porttitor nisi blandit facilisis. Morbi vitae lectus id nunc ultricies tincidunt.##_##More text##_### here.'; 
 
function GetSubstrs(istr) { 
 
    var res = []; 
 
    var start_pos = istr.indexOf('##_##'); 
 
    while (start_pos > -1) 
 
    { 
 
    var end_pos = istr.indexOf('##_###',start_pos + 5); 
 
    var text_to_get = istr.substring(start_pos + 5,end_pos) 
 
    res.push(text_to_get); 
 
    start_pos = istr.indexOf('##_##', end_pos + 6); 
 
    } 
 
    return res; 
 
} 
 

 
alert(GetSubstrs(teststr));

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