Как я могу извлечь имя пользователя из адреса электронной почты, используя JavaScript? - PullRequest
17 голосов
/ 01 сентября 2011

Учитывая следующий адрес электронной почты - somebody@example.com - как я могу извлечь кого-то из адресов, используя javascript?

Спасибо.

Ответы [ 5 ]

37 голосов
/ 01 сентября 2011

Регулярное выражение с соответствием

с проверками безопасности

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

17 голосов
/ 01 сентября 2011
"someone@example.com".split('@')[0]
1 голос
/ 16 февраля 2017
var email = "someone@example.com";

var username = email.substring(0,email.indexOf('@'))
1 голос
/ 01 сентября 2011

имя пользователя:

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

сервер:

"someone@example.com".replace(/^(.+)@(.+)$/g,'$2')
0 голосов
/ 01 сентября 2011

string.split (разделитель, предел) - это метод, который вы хотите

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...