Разбор электронной почты по RegExp в JavaScript в одну строку; сделать правый регистр нечувствительным, но оставить левым - PullRequest
0 голосов
/ 09 апреля 2020
  1. Из моего кода:

    //yagh ... apparently there's an off-chance email is case sensitive ...
    
    console.log('yooooooooo0 ' + name.substr(name.indexOf('@')+1));
    //console.log('yooooooooo1 ' + name.substr(name.indexOf('@')+1).toLowercase());
    console.log('yooooooooo1 ' + name.substr(name.indexOf('@')+1).toLowerCase());
    console.log('yooooooooo2 ' + name.substr(name.indexOf('@'),0));
    console.log('yooooooooo3 ' + name.split('@')[0]);
    console.log('yooooooooo4 ' + /[^@]*/.exec(name)[0]);//hmmm mh
    console.log('yooooooooo4_2 ' + /[^@]*$/.exec(name)[0]);//hmmm mh
    //hm yea okay ya
    console.log(name);//nondestructive and
    //pff ...
    console.log((/[^@]*/.exec(name)[0])+'@'+(/[^@]*$/.exec(name)[0]).toLowerCase);
    let tmp = (/[^@]*/.exec(name)[0])+'@'+ (/[^@]*$/.exec(name)[0]).toLowerCase;
    console.log(tmp);
    console.log((/[^@]*/.exec(name)[0])+'@'+name.substr(name.indexOf('@')+1).toLowerCase());
        var pass = $('#pass1').val();
    
        var crypto = window.crypto || window.msCrypto;
    
    if(crypto.subtle)
    {
    
  2. Скажите, что электронное письмо, которое приходит с a@b.C. Суть в том, что я только что обнаружил, что электронная почта является нечувствительным к регистру правом @. Теоретически, администраторы могут разрешить этот слайд, но на практике большинство не предотвратит путаницу (вот что я прочитал).

    Я хочу:

    console.log((/[^@]*/.exec(name)[0])+'@'+(/[^@]*$/.exec(name)[0]).toLowerCase);
    

    У меня есть работающий бит это:

    console.log((/[^@]*/.exec(name)[0])+'@'+name.substr(name.indexOf('@')+1).toLowerCase());
    

    Первый дает мне:

    a@function toLowerCase(){
       [native code]
    }
    

    А второй:

    a@b.c
    

    Что хорошо, но первый красивее и менее читабельным, и это здорово, потому что на нем больше никто не будет.

    Есть ли способ заставить работать первый? (Присвоение let tmp= дает тот же ответ при записи в журнал (tmp).

1 Ответ

1 голос
/ 09 апреля 2020

Заменить

console.log((/[^@]*/.exec(name)[0])+'@'+(/[^@]*$/.exec(name)[0]).toLowerCase);

на

console.log((/[^@]*/.exec(name)[0])+'@'+(/[^@]*$/.exec(name)[0]).toLowerCase());

Вы также можете сделать это

const email = 'some.name@some_domain.com'
const [name, domain] = email.split('@')
console.log(`${name}@${domain}`);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...