我在Symfony2
框架中提交表单时,尝试使用正则表达式验证电子邮件地址。我在checkMX and checkHost
类中使用了Entity
个属性。这样做了。但我无法验证正则表达式即 {,$,#,!,^
....请帮助某人......
这是我的代码片段..
<?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;
}
}
答案 0 :(得分:3)
根据documentation,您可以使用此注释:
/**
* @Assert\Regex(
* pattern="/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/",
* message="not_valid_email"
* )
*
* @var string
*/
private $email;
答案 1 :(得分:0)
http://symfony.com/doc/current/reference/constraints/Email.html
我认为@Assert \ Email可以完成这项工作,但如果你想实现另外一个定制的正则表达式,你可以使用Assert标签。
* @Assert\Regex(
* pattern = "/^[a-zA-Z0-9\-\_]+$/",
* message = "invalid characters"
* )
我知道这个正则表达式不是你想要的,但是我认为这里使用的格式与其他任何语言中使用的其他常规格式都没有太大差别(有些字符需要用反斜杠转义),我认为。