我是正则表达式的新手,我想做的是使用 javascript 解析我的输入,如下所述:
我可能会得到 3 种类型的输入:
someEmail@domain.com;anotherEmail@domain.com;
和
some name<someEmail@domain.com>;another name<anotherEmail@domain.com>;
或者可能像
someEmail@domain.com;another name<anotherEmail@domain.com>;
我想做的是用 ; 分隔整个输入。这将为我提供一组电子邮件,然后检查每个数组项是否:
- 有 < 和 >,然后检索 < 和 > 之间的文本作为值。
- 没有 < 和 > 则将整个文本作为值。
我已经在尝试学习正则表达式了。如果有人给我正则表达式,如果它附有解释,以便我可以理解和学习,我将不胜感激。
干杯
最佳答案
尝试像这样作为初学者 - 避免复杂的正则表达式 - 如果您的输入采用所述形式,则不需要:
str = 'someEmail@domain.com;another name<anotherEmail@domain.com>;someEmail@domain.com;anotherEmail@domain.com;some name<someEmail@domain.com>;another name<anotherEmail@domain.com>;test@test.com';
var splits = str.split(';');
for (var i = 0; i < splits.length; i++) {
if (splits[i].indexOf('<') == -1) {
$('#output').append(splits[i] + '<br>');
} else {
var address = splits[i].match(/<(.*?)>/)[1];
$('#output').append(address + '<br>');
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='output'></div>
关于javascript - 用于检索文本的条件正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33496818/