使用Symfony验证电话号码

时间:2016-03-14 20:48:58

标签: regex symfony

我想在表单中验证手机号码。我想检查这个号码,“(”和“)”字符只有效。因此用户可以填写+31(0)600000000。 +31已在表格中预设。只有下面的代码可以使用这个数字,只能添加两个字符?

或者有更好的方法可以验证电话号码吗?

 @Assert\Length(min = 8, max = 20, minMessage = "min_lenght", maxMessage = "max_lenght")
 @Assert\Regex(pattern="/^[0-9]*$/", message="number_only") 

2 个答案:

答案 0 :(得分:7)

如果你需要一个好的和强大的数字验证器,有高级选项来进行评估,我会建议使用google lib https://github.com/googlei18n/libphonenumber,存在symfony2 bundle https://github.com/misd-service-development/phone-number-bundle,你可以看到有一个断言注释:

use Misd\PhoneNumberBundle\Validator\Constraints\PhoneNumber as AssertPhoneNumber;

/**
 * @AssertPhoneNumber
 */
private $phoneNumber;

答案 1 :(得分:3)

你需要的正则表达式是:

/^\(0\)[0-9]*$

或整个数字

/^\+31\(0\)[0-9]*$

您可以在这里测试和使用正则表达式(它还包括自动生成的解释): https://www.regex101.com/r/gD0hE5/1