Извлечь имена из E-Mail в текстовом поле javascript [duplicate]

Не совсем ..

цитата из docs

Псевдокласс класса :nth-child соответствует элементу с + b -1 братья и сестры перед ним в дереве документов, для данного положительного или нулевого значения для n и имеет родительский элемент.

blockquote>

Он является селектором и не сочетается с классами , В вашем правиле он просто должен удовлетворять обоим селекторам одновременно, поэтому он отображает строки таблицы :nth-child(even), если они также имеют класс .row.

16
задан octopusgrabbus 12 July 2012 в 21:04
поделиться

5 ответов

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

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

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(/@.*$/,"");

Сплит String

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

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

, записанный как одна строка

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

Тесты производительности каждого примера

Тесты JSPerf

29
ответ дан epascarello 20 August 2018 в 09:50
поделиться
  • 1
    Не уверен в семантике javascript, но я бы использовал этот шаблон: /.+(?=@)/ – Xarylem 30 November 2016 в 14:45
  • 2
    Функционально: str.split("@").reduce(user => user) – schabluk 5 December 2016 в 11:46
  • 3
    @epascarello - Почему вы (или кто-либо еще здесь) не используете простой str.substring(0,str.indexOf("@"))? Поскольку у вас примерно в 65 раз больше репутации, чем я, я уверен, что я что-то пропустил, просто не знаю, что .. – myfunkyside 31 December 2016 в 00:39
  • 4
    @myfunkyside вы понимаете, что это более 5 лет. Это может сработать. Сделайте ответ. – epascarello 31 December 2016 в 05:17
  • 5
    @epascarello Мне нравится думать, что я все еще могу узнать из 5-летнего вопроса. Те же правила по-прежнему в значительной степени применяются. И если кто-то посетит эту страницу в 2022 году, я бы хотел подумать, что человек все еще может узнать что-то из вашего ответа на мой вопрос. – myfunkyside 31 December 2016 в 06:20

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

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

сервер:

"someone@example.com".replace(/^(.+)@(.+)$/g,'$2')
1
ответ дан Andrew D. 20 August 2018 в 09:50
поделиться

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

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

0
ответ дан kmcc049 20 August 2018 в 09:50
поделиться
var email = "someone@example.com";

var username = email.substring(0,email.indexOf('@'))
0
ответ дан Petter Friberg 20 August 2018 в 09:50
поделиться
"someone@example.com".split('@')[0]
16
ответ дан qingbo 20 August 2018 в 09:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: