【发布时间】:2011-11-08 03:48:29
【问题描述】:
鉴于以下电子邮件地址 --someone@example.com -- 我如何使用 javascript 从该地址中提取某人?
谢谢。
【问题讨论】:
标签: javascript email
鉴于以下电子邮件地址 --someone@example.com -- 我如何使用 javascript 从该地址中提取某人?
谢谢。
【问题讨论】:
标签: javascript email
"someone@example.com".split('@')[0]
【讨论】:
string.split(separator, limit) 是你想要的方法
"someone@example.com".split("@")[0]
【讨论】:
正则表达式匹配
有安全检查
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];
每个示例的性能测试
【讨论】:
str.split("@").reduce(user => user)
str.substring(0,str.indexOf("@"))?既然你的声望是我的 65 倍左右,我很确定我错过了什么,只是不知道是什么..
用户名:
"someone@example.com".replace(/^(.+)@(.+)$/g,'$1')
服务器:
"someone@example.com".replace(/^(.+)@(.+)$/g,'$2')
【讨论】:
var email = "someone@example.com";
var username = email.substring(0,email.indexOf('@'))
【讨论】:
您可以在这个 npm 包的帮助下从电子邮件中生成或获取用户名。
2。 npm i generate-username-from-email
const generateUsername = require('generate-username-from-email')
var email = "patidarparas13@gmail.com"
var username = generateUsername(email)
console.log(username)
//Output: patidarparas13
【讨论】:
我的 2021 年更新。这将从包含多个 @ 符号的电子邮件地址正确输出用户名。仅使用 '@' 拆分是不安全的,因为如果引用,则允许多个。
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'))
【讨论】:
下面的示例代码将返回myemailaddress。
getUsername = (email) => {
return email.substring(0, email.lastIndexOf("@"));
}
const userEmail = 'myemailaddress@gmail.com';
getUsername(userEmail);
【讨论】: