2016-04-22 3 views
0

Я пытаюсь иметь три полные группы захвата, где последнее является необязательным. Я сталкиваюсь с проблемой, когда я не уверен, как исключить последний разделитель из последней группы, а также проверить ее до конца.Дополнительная группа захвата завершена

Вот мой рисунок

/(.+)\@(.+)\:(.+)/ 

Вот мой пример строки

[email protected] // => ['test', 'hello'] 
[email protected]:optional // => ['test', 'hello', 'optional'] 
+1

Просто, чтобы показать, как можно исправить шаблон: (. +) (.? +) [ '^ \ @ (? :: (. +?)) $ '] (https://regex101.com/r/pA6rA6/1). –

ответ

2

Использование String.split

string.split(/[:@]/) 

[:@] соответствует двоеточие или @ символ, то функция сплит разбивает строку в соответствии с согласованными символами.

var s = '[email protected]:optiona' 
 
alert(s.split(/[@:]/))

или

var s = '[email protected]:optiona' 
 
alert(s.match(/[^@:]+/g))

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