2015-11-09 4 views
-5

Я хочу, чтобы извлечь следующиеИзвлечение строки из строки в JavaScript

test-09112015-143033 

из моей строки:

"HEAD,tag: refs/tags/test-09112015-143033,refs/remotes/origin/test" 

Следующая работает, когда нет ничего после.

function getSecondPart(str) { 
    return str.split('/tags/')[1]; 
} 

Fiddle

Как я могу решить эту проблему, когда есть что-то после того, как (или что-то еще, конечно)

,refs/remotes/origin/test 
+3

есть причина, по которой вы не могли просто позвонить .split снова в запятую? –

+3

Можете ли вы подробнее рассказать? Я предполагаю, что вам не нужна буквальная строка 'test-09112015-143033', потому что у вас ее уже есть. Могут ли цифры меняться? Исправлен ли префикс 'text'? Может ли длина деталей различаться? Что такое встроенная подстрока? Есть ли регулярность? –

+0

Я просто хочу, чтобы он остановился на запятой на самом деле – Bob

ответ

0

Если вы уверены, что ваша строка всегда будет между /tags/ и , Вы можете использовать:

function getSecondPart(str) { 
 
    return str.match("/tags/([^,]+),")[1]; 
 
} 
 

 
// use the function: 
 
console.log(getSecondPart("HEAD,tag: refs/tags/test-09112015-143033,refs/remotes/origin/test"));

надеюсь, что это поможет.

+0

Может быть более безопасным (и более эффективным) использовать '[^,] +' вместо того, чтобы все с нетерпением. –

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