const strs = [ 'foo <foo@prov.com>', 'bar <bar@prov.com>', 'baz <baz@prov.com> fdafad fad', 'invalid' ];
let r1 = /<(.*)>/;
let r2 = /<([^>]+)>/;
function comForNormal(s) {
var inicio = null, fim = null;
for (var i = 0; i < s.length; i++) {
var c = s[i];
if (c === '<') {
inicio = i;
} else if (c === '>') {
fim = i;
break;
}
}
if (inicio !== null && fim !== null)
return s.substring(inicio + 1, fim);
return undefined;
}
function comIndexOf(s) {
var inicio = s.indexOf('<');
if (inicio === -1)
return undefined;
var fim = s.indexOf('>', inicio);
if (fim === -1)
return undefined;
return s.substring(inicio + 1, fim);
}