如何在 Symfony2 框架中的实体 class 中验证正则表达式的电子邮件地址
How to validate an email address for regular expression inside an Entity class in Symfony2 framework
我在 Symfony2
框架中提交表单时尝试使用正则表达式验证电子邮件地址。我在 Entity
class 中使用了 checkMX and checkHost
属性。这完成了。但我无法为正则表达式验证它 i.e. {,$,#,!,^
... 请帮助某人...
这是我的代码片段..
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* product1
*/
class product1
{
/**
* @var int
*/
private $id;
/**
* @var string
* @Assert\Email(
*
* checkHost= true,
* checkMX = true,
* message="Invalid email host"
*
*
* )
* @Assert\Email(
* strict=false,
* message="invalid"
* )
*
*/
private $email;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set email
*
* @param string $email
*
* @return product1
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* Get email
*
* @return string
*/
public function getEmail()
{
return $this->email;
}
}
http://symfony.com/doc/current/reference/constraints/Email.html
我认为@Assert\Email 已经足够了,但如果您想实现额外的另一个定制正则表达式,您可以使用 Assert 标记。
* @Assert\Regex(
* pattern = "/^[a-zA-Z0-9\-\_]+$/",
* message = "invalid characters"
* )
我知道这个正则表达式不是你想要的,但我认为这里使用的格式与任何其他语言中使用的其他常规格式没有太大区别(一些字符需要用反斜杠转义)。
根据documentation,你可以使用这个注解:
/**
* @Assert\Regex(
* pattern="/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/",
* message="not_valid_email"
* )
*
* @var string
*/
private $email;
我在 Symfony2
框架中提交表单时尝试使用正则表达式验证电子邮件地址。我在 Entity
class 中使用了 checkMX and checkHost
属性。这完成了。但我无法为正则表达式验证它 i.e. {,$,#,!,^
... 请帮助某人...
这是我的代码片段..
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* product1
*/
class product1
{
/**
* @var int
*/
private $id;
/**
* @var string
* @Assert\Email(
*
* checkHost= true,
* checkMX = true,
* message="Invalid email host"
*
*
* )
* @Assert\Email(
* strict=false,
* message="invalid"
* )
*
*/
private $email;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set email
*
* @param string $email
*
* @return product1
*/
public function setEmail($email)
{
$this->email = $email;
return $this;
}
/**
* Get email
*
* @return string
*/
public function getEmail()
{
return $this->email;
}
}
http://symfony.com/doc/current/reference/constraints/Email.html
我认为@Assert\Email 已经足够了,但如果您想实现额外的另一个定制正则表达式,您可以使用 Assert 标记。
* @Assert\Regex(
* pattern = "/^[a-zA-Z0-9\-\_]+$/",
* message = "invalid characters"
* )
我知道这个正则表达式不是你想要的,但我认为这里使用的格式与任何其他语言中使用的其他常规格式没有太大区别(一些字符需要用反斜杠转义)。
根据documentation,你可以使用这个注解:
/**
* @Assert\Regex(
* pattern="/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/",
* message="not_valid_email"
* )
*
* @var string
*/
private $email;