简体   繁体   English

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

[英]How can I extract the user name from an email address using javascript?

Given the following email address -- someone@example.com -- how can I extract someone from the address using javascript?给定以下电子邮件地址——someone@example.com——我如何使用 javascript 从地址中提取某人?

Thank you.谢谢你。

Regular Expression with match正则表达式与匹配

with safety checks有安全检查

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

written as one line写成一行

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

Regular Expression with replace带替换的正则表达式

with safety checks有安全检查

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

written as one line写成一行

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

Split String拆分字符串

with safety checks有安全检查

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

written as one line写成一行

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

Performance Tests of each example每个示例的性能测试

JSPerf Tests JSPerf 测试

"someone@example.com".split('@')[0]
var email = "someone@example.com";

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

You can generate or fetch a username from the email with the help of this npm package.您可以借助此 npm 包从电子邮件中生成或获取用户名。

  1. Generate username from email 从电子邮件生成用户名

2. npm i generate-username-from-email 2. npm i generate-username-from-email

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

username:用户名:

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

server:服务器:

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

My 2021 update.我的 2021 年更新。 This will correctly output a username from an email address that contains multiple @ symbols.这将从包含多个 @ 符号的电子邮件地址正确输出用户名。 Just splitting with '@' is not safe as multiple are allowed if quoted.仅使用“@”拆分是不安全的,因为如果引用,则允许使用多个。

JSFiddle example JSFiddle 示例

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'))

The example code below will return myemailaddress .下面的示例代码将返回myemailaddress

getUsername = (email) => {
   return email.substring(0, email.lastIndexOf("@"));
}

const userEmail = 'myemailaddress@gmail.com';
getUsername(userEmail);

// Input: test.user@example.com. // 输入:test.user@example.com。 Output: Test User输出:测试用户
// Split user email then capitalize each first character of word. // 拆分用户电子邮件,然后将单词的每个第一个字符大写。

   public getUserName(input: string): string {
         if (!input) {
           return ''
         }
         if (!input.includes('@')) {
           return input;
         } else {
           const cleanedInput = input.split('@')[0]?.replace(/[^\w]/g, ' ').split(' ');
           const capitalizedInput = cleanedInput?.map(word => {
             return word[0]?.toUpperCase() + word.substring(1);
           }).join(' ');
    
           return capitalizedInput;
         }
      }

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用 JavaScript 提取电子邮件地址域? - How to extract email address domain using JavaScript? 如何从查询字符串javascript中提取地址 - How can I extract address from query string javascript 如何验证 JavaScript 中的 email 地址? - How can I validate an email address in JavaScript? 如何使用存储在数据库中的用户 email 地址将消息发送给特定用户? - How can I send the message to a specific user using the user's email address stored in db? 如何使用jQuery找到具有电子邮件地址作为类名的元素? - How can I find element having an email address as class name using jQuery? 如何从字符串中提取单个电子邮件地址? - How to extract single email address from string? 如何在网站上使用BeautifulSoup或Slimit从javascript变量输出电子邮件地址 - How can I use BeautifulSoup or Slimit on a site to output the email address from a javascript variable 在javascript中,如何将电子邮件地址转换为有效的DOM ID? - In javascript, how can I transform an email address into a valid DOM id? 如何使用JavaScript在表格单元格中写入电子邮件地址? - How can I write an email address inside a table cell with JavaScript? 如何使用JavaScript从当前URL中提取标记 - How can I extract tokens from the current URL using JavaScript
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM