下面是我曾经在51js上提出的问题,“客服果果”给我的解答:
采用js正则表达式方法:
function _1($){ var _=/[^<@]+@[^>]+/g; return $.match(_); } function _2($){ var _=/[\w\.\+-]+@[\w\.\+-]+/g; return $.match(_); } function _3($){ var _=/^[^<]+<|>[^<]+<|>$/; return $.split(_); } function _4($){ var _=/^[^<]+<|>[^<]+<|>$/g; return $.replace(_,'|').replace(/^\|/,'').split('|'); } function _5($){ for (var i=0,_='',x,__=[];i<$.length;i++ ) { var $$=$.charAt(i); switch ($$){ case '<':x=true; continue; case '>':x=false; __.push(_);_=''; continue; } if(x)_+=$$; } return __; } function _6($){ for(var i=0,$$=$,_=[],a=0;;){ a=$$.indexOf('<')+1; if(a==0)break; i=$$.indexOf('>'); _.push($$.slice(a,i)); $$=$$.slice(i+1); } return _; } emailAddr = ' "aa"<aa@163.com>; "bb"<bb@126.com>; "cc"<cc@yahoo.com.cn>'; alert(_1(emailAddr).join('\n')); alert(_2(emailAddr).join('\n')); alert(_3(emailAddr).join('\n')); alert(_4(emailAddr).join('\n')); alert(_5(emailAddr).join('\n')); alert(_6(emailAddr).join('\n'));