如何使用javascript从电子邮件地址中提取用户名?

时间:2011-09-01 06:06:49

标签: javascript email

鉴于以下电子邮件地址 - someone@example.com - 如何使用javascript从地址中提取某人?

谢谢。

7 个答案:

答案 0 :(得分:37)

匹配的正则表达式

进行安全检查

var str="someone@example.com";
var nameMatch = str.match(/^([^@]*)@/);
var name = nameMatch ? nameMatch[1] : null;

写成一行

var name = str.match(/^([^@]*)@/)[1];

带有替换的正则表达式

进行安全检查

var str="someone@example.com";
var nameReplace = str.replace(/@.*$/,"");
var name = nameReplace!==str ? nameReplace : null;

写成一行

var name = str.replace(/@.*$/,"");

拆分字符串

进行安全检查

var str="someone@example.com";
var nameParts = str.split("@");
var name = nameParts.length==2 ? nameParts[0] : null;

写成一行

var name = str.split("@")[0];

每个示例的效果测试

JSPerf Tests

答案 1 :(得分:17)

"someone@example.com".split('@')[0]

答案 2 :(得分:1)

用户名:

"someone@example.com".replace(/^(.+)@(.+)$/g,'$1')

服务器:

"someone@example.com".replace(/^(.+)@(.+)$/g,'$2')

答案 3 :(得分:1)

var email = "someone@example.com";

var username = email.substring(0,email.indexOf('@'))

答案 4 :(得分:0)

string.split(separator,limit)是你想要的方法

"someone@example.com".split("@")[0]

答案 5 :(得分:0)

您可以借助此npm软件包从电子邮件中生成或获取用户名。

  1. Generate username from email

2。 npm i generate-username-from-email

  1. 使用以下代码从电子邮件中获取用户名:
const generateUsername = require('generate-username-from-email')
var email = "patidarparas13@gmail.com"
var username = generateUsername(email)
console.log(username)
//Output: patidarparas13

答案 6 :(得分:0)

我的 2021 年更新。这将从包含多个 @ 符号的电子邮件地址正确输出用户名。仅用 '@' 拆分是不安全的,因为如果引用,则允许多个。

JSFiddle example

function getUsernameFromEmail(email){
    var domainArray = email.split('@')
    var domain = domainArray[domainArray.length-1]
    var reverseEmail = email.split( '' ).reverse( ).join( '' );
    var reverseDomain = domain.split( '' ).reverse( ).join( '' );
    var backwardUsername = reverseEmail.replace(reverseDomain+'@','')
    var username = backwardUsername.split( '' ).reverse( ).join( '' );
  return username;
}

console.log(getUsernameFromEmail('test@testhello@example.com'))