我需要分割一个电子邮件地址,并取出第一个字符和“ @”之后的第一个字符
我可以这样做,如下所示:
'bar@foo'.split('@').map(function(a){ return a.charAt(0); }).join('')
--> bf
现在我想知道是否可以使用正则表达式匹配来完成,就像这样
'bar@foo'.match(/^(\w).*?@(\w)/).join('')
--> bar@fbf
并不是我真正想要的东西,但是我敢肯定我会在这里错过一些东西!有什么建议 ?
为什么要使用正则表达式呢?只需用于indexOf
将char放在任意给定位置即可:
var addr = 'foo@bar';
console.log(addr[0], addr[addr.indexOf('@')+1])
为了确保您的代码在所有浏览器上都能正常运行,您可能要使用charAt
而不是[]
:
console.log(addr.charAt(0), addr.charAt(addr.indexOf('@')+1));
无论哪种方式,它会工作得很好,而这无疑是最快的方法
。如果你是要坚持,并选择一个正则表达式,那么你应该意识到,match
方法返回一个包含3串,你的情况的数组:
/^(\w).*?@(\w)/
["the whole match",//start of string + first char + .*?@ + first string after @
"groupw 1 \w",//first char
"group 2 \w"//first char after @
]
所以addr.match(/^(\w).*?@(\w)/).slice(1).join('')
可能就是您想要的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句