mirror of
https://github.com/egulias/EmailValidator.git
synced 2026-08-21 19:45:24 +00:00
COMMA is not allowed in domain part
This commit is contained in:
@@ -116,13 +116,13 @@ class EmailLexer extends AbstractLexer
|
||||
protected function getCatchablePatterns()
|
||||
{
|
||||
return array(
|
||||
'[a-zA-Z_]+[4,6]?',
|
||||
'[a-zA-Z_]+[46]?',
|
||||
'[0-9]+',
|
||||
'\r\n',
|
||||
'::',
|
||||
'\s+',
|
||||
'[\x1-\x1F]+',
|
||||
'.'
|
||||
'[\x10-\x1F]+',
|
||||
'.',
|
||||
);
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ class EmailLexer extends AbstractLexer
|
||||
return $this->charValue[$value];
|
||||
}
|
||||
|
||||
if (preg_match('/[\x1-\x1F]+/', $value)) {
|
||||
if (preg_match('/[\x10-\x1F]+/', $value)) {
|
||||
return self::INVALID;
|
||||
}
|
||||
|
||||
|
||||
@@ -235,12 +235,18 @@ class DomainPart extends Parser
|
||||
|
||||
protected function checkDomainPartExceptions($prev)
|
||||
{
|
||||
if ($this->lexer->token['type'] === EmailLexer::S_COMMA) {
|
||||
throw new \InvalidArgumentException('ERR_COMMA_IN_DOMAIN');
|
||||
}
|
||||
|
||||
if ($this->lexer->token['type'] === EmailLexer::S_AT) {
|
||||
throw new \InvalidArgumentException('ERR_CONSECUTIVEATS');
|
||||
}
|
||||
|
||||
if ($this->lexer->token['type'] === EmailLexer::S_OPENQBRACKET && $prev['type'] !== EmailLexer::S_AT) {
|
||||
throw new \InvalidArgumentException('ERR_EXPECTING_ATEXT');
|
||||
}
|
||||
|
||||
if ($this->lexer->token['type'] === EmailLexer::S_HYPHEN && $this->lexer->isNextToken(EmailLexer::S_DOT)) {
|
||||
throw new \InvalidArgumentException('ERR_DOMAINHYPHENEND');
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ class EmailValidatorTest extends \PHPUnit_Framework_TestCase
|
||||
/**
|
||||
* @dataProvider getInvalidEmails
|
||||
*/
|
||||
public function testAInvalidEmails($email)
|
||||
public function testInvalidEmails($email)
|
||||
{
|
||||
$this->assertFalse($this->validator->isValid($email));
|
||||
}
|
||||
@@ -65,6 +65,7 @@ class EmailValidatorTest extends \PHPUnit_Framework_TestCase
|
||||
array('username@ example . com'),
|
||||
array('example@(fake).com'),
|
||||
array('example@(fake.com'),
|
||||
array('username@example,com'),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user