Разрешить только e-mail и запятые

Sunday

Cōgitō ergō sum
Регистрация
13 Дек 2009
Сообщения
823
Реакции
342
Здрасте!
Помогите пожалуйста с двумя простыми регулярками.

1. В проверяемой строке должны быть только e-mail-ы и запятые.
2. В проверяемой строке должны быть только цифры и запятые.

Для проверки мыл есть регулярка, но я не смог туда присобачить запятую :ah:
 
Я бы сделал, так для проверки E-mail
^(([-a-z0-9!#$%&'*+/=?^_`{|}~]+(?:\.[-a-z0-9!#$%&'*+/=?^_`{|}~]+)*@(?:[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?\.)*(?:aero|arpa|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|[a-z][a-z]))(,|)?)+$
Вернет строку с E-mail, дальше на php
PHP:
<?php
$mail_string = 'abs@asd.ru,asdsf@mass.com,';
 
$flag = preg_match("#^(([-a-z0-9!\#$%&'*+/=?^_`{|}~]+(?:\.[-a-z0-9!\#$%&'*+/=?^_`{|}~]+)*@(?:[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?\.)*(?:aero|arpa|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|[a-z][a-z]))(,|)?)+$#", $mail_string, $result);
if($flag) {
    $result[0] = rtrim($result[0], ',');
    $arr_mail = explode(',',$result[0]);
    var_dump($arr_mail);
}

2. В проверяемой строке должны быть только цифры и запятые.
PHP:
$mail_string = '898989898,68686,8,68,8,6,6,6,8,8,';
$mail_string = trim($mail_string, ',');
$flag = preg_match("#^[0-9,]+$#", $mail_string, $result);
if($flag) {
 
    var_dump($result);
}
# имена переменных сменить надо. чтобы не запутиться
 
$flag = preg_match("#^(([-a-z0-9!\#$%&'*+/=?^_`{|}~]+(?:\.[-a-z0-9!\#$%&'*+/=?^_`{|}~]+)*@(?:[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])?\.)*(?:aero|arpa|asia|biz|cat|com|coop|edu|gov|info|int|jobs|mil|mobi|museum|name|net|org|pro|tel|travel|[a-z][a-z]))(,|)?)+$#", $mail_string, $result);
if($flag) {
$result[0] = rtrim($result[0], ',');
$arr_mail = explode(',',$result[0]);
var_dump($arr_mail);
}

не работает
 
Какой $mail_string использовали для проверки?
 
Назад
Сверху