如何仅匹配数字电子邮件地址

elz*_*lzi -1 javascript regex

我怎样才能匹配数字电子邮件地址?

我正在测试以下电子邮件地址:

12345839223@gmail.com <-- want this  
38482934934@gmail.com <-- want this  
abcaasd@gmail.com     <-- don't want this  
asdasd123@gmail.com   <-- don't want this  
123asdasd@gmail.com   <-- don't want this
Run Code Online (Sandbox Code Playgroud)

我尝试了以下正则表达式,但它将一些地址与字母匹配.

([0-9])+(@+)

小智 5

正则表达式/^\d+(?=@)/将为您实现这一目标.从下图中可以看出,它查找行的开头,后跟一个或多个数字,后跟"@"符号.

在此输入图像描述

这是一个RegEx101测试用例供参考

var emails = [
  '12345839223@gmail.com',
  '38482934934@gmail.com',
  'abcaasd@gmail.com',
  'asdasd123@gmail.com',
  '123asdasd@gmail.com'
];

function emailNum(email) {
    return (/^\d+(?=@)/.exec(email)||[false])[0];
    // return the match if it exists or false
}

for(var i in emails) document.write(emails[i]+': '+emailNum(emails[i])+'<br>');
Run Code Online (Sandbox Code Playgroud)