Improve validation and formatting for 0303 and 0505 phone numbers

This commit is contained in:
Kijin Sung 2019-05-13 15:34:09 +09:00
parent 1d22aa9a44
commit d873196aa8
2 changed files with 18 additions and 1 deletions

View file

@ -47,7 +47,14 @@ class Korea
default:
if (substr($num, 0, 4) === '0303' || substr($num, 0, 3) === '050')
{
return substr($num, 0, 4) . '-' . substr($num, 4, 3) . '-' . substr($num, 7);
if (strlen($num) === 12)
{
return substr($num, 0, 4) . '-' . substr($num, 4, 4) . '-' . substr($num, 8);
}
else
{
return substr($num, 0, 4) . '-' . substr($num, 4, 3) . '-' . substr($num, 7);
}
}
else
{
@ -77,6 +84,10 @@ class Korea
{
return true;
}
if (preg_match('/^0(?:303|505)[2-9][0-9]{6,7}$/', $num))
{
return true;
}
return false;
}

View file

@ -13,6 +13,8 @@ class KoreaTest extends \Codeception\TestCase\Test
$this->assertEquals('010-6666-7777', Rhymix\Framework\Korea::formatPhoneNumber('82+1066667777'));
$this->assertEquals('0303-456-7890', Rhymix\Framework\Korea::formatPhoneNumber('03034567890'));
$this->assertEquals('0505-987-6543', Rhymix\Framework\Korea::formatPhoneNumber('050-5987-6543'));
$this->assertEquals('0303-4567-8900', Rhymix\Framework\Korea::formatPhoneNumber('030345678900'));
$this->assertEquals('0505-9876-5432', Rhymix\Framework\Korea::formatPhoneNumber('050-5987-65432'));
$this->assertEquals('070-7432-1000', Rhymix\Framework\Korea::formatPhoneNumber('0707-432-1000'));
}
@ -26,12 +28,16 @@ class KoreaTest extends \Codeception\TestCase\Test
$this->assertTrue(Rhymix\Framework\Korea::isValidPhoneNumber('053-4444-5555'));
$this->assertTrue(Rhymix\Framework\Korea::isValidPhoneNumber('011-444-5555'));
$this->assertTrue(Rhymix\Framework\Korea::isValidPhoneNumber('010-4444-5555'));
$this->assertTrue(Rhymix\Framework\Korea::isValidPhoneNumber('0303-4444-5555'));
$this->assertTrue(Rhymix\Framework\Korea::isValidPhoneNumber('0505-4444-5555'));
$this->assertFalse(Rhymix\Framework\Korea::isValidPhoneNumber('010-4444-55555'));
$this->assertFalse(Rhymix\Framework\Korea::isValidPhoneNumber('010-1234-5678'));
$this->assertFalse(Rhymix\Framework\Korea::isValidPhoneNumber('02-123-4567'));
$this->assertFalse(Rhymix\Framework\Korea::isValidPhoneNumber('02-123456'));
$this->assertFalse(Rhymix\Framework\Korea::isValidPhoneNumber('03-456-7890'));
$this->assertFalse(Rhymix\Framework\Korea::isValidPhoneNumber('090-9876-5432'));
$this->assertFalse(Rhymix\Framework\Korea::isValidPhoneNumber('0303-1111-5432'));
$this->assertFalse(Rhymix\Framework\Korea::isValidPhoneNumber('0505-9876-543210'));
}
public function testIsValidMobilePhoneNumber()