2016-08-23 7 views
0

У меня есть текст в строке. Я написал функцию, которая извлекает письма из этой строки, но я хочу удалить электронные письма с определенным tld.Извлечь адреса электронной почты, но удалить некоторые tld

Например, удалить все сообщения электронной почты с TLD .xyz

Вот эта функция. Я не думаю, что интеграция без учета регистра работает на самом деле. Любая помощь, пожалуйста?

function extraction(string) { 
    var emails= string.match(/\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,6}\b/ig);  
    if (/(xyz|us|porn/i)$/.test(emails)){ 
     return false; 
    } else { 
     return emails; 
    } 
} 
+0

вы могли бы дать нам Exemple входной строки? Но не в текстовом формате –

+0

Добавьте тег 'regex' к вашему вопросу, чтобы все люди могли его видеть. – yuriy636

ответ

1

Вы могли бы включить эту логику в своем первом регулярном выражении с отрицательным прогнозным:

\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.(?!xyz\b|abc\b|xxx\b)[A-Z]{2,6}\b 

Введенная часть ((?!xyz\b|abc\b|xxx\b)) будет убедиться, что эти 3 расширением (xyz, abc, xxx) является Исключенный.

Нет необходимости в повторном регулярном выражении. Оскорбительные будут немедленно исключены.

Для случая нечувствительности необходимо предоставить модификатор i в самом конце регулярного выражения, а не на полпути:

/........./i 
0

Во-первых, если вы пытаетесь ограничить некоторые слова, что вы должны сделать, это проверить, прежде чем вы ставите свое регулярное выражение. http://regexr.com/

Во-вторых, часть этого регулярного выражения является неправильным/(хуг | мы | порно/я) $/вы положили неэкранированный косую черту перед я, что ничего не значит, что это ошибка в регулярном выражении I» Я не специалист по регулярному выражению, я сделал это и работал над этими словами, которые вы пытались проверить Это был мой результат/xyz | us | porn/ig Я положил/ig, что означает, что будет выполняться поиск в верхнем регистре или в нижнем регистре и слова в глобальном масштабе, чтобы обеспечить взаимный поиск.

Я изучаю английский язык, если вы не понимаете, спрашивайте меня с вашим сомнением в моем тексте, и я отвечу вам.

function extraction(string) { 
 
    var emails= string.match(/\b[A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,6}\b/ig);  
 
    if (/xyz|us|porn/ig.test(emails)){ 
 
     return false; 
 
    } else { 
 
     return emails; 
 
    } 
 
} 
 

 
document.write(extraction('[email protected]')); 
 
document.write('<br/>'); 
 
document.write(extraction('[email protected]')); 
 
document.write('<br/>'); 
 
document.write(extraction('[email protected]'));

Смежные вопросы