我目前正在使用Regex模式验证网址,但它似乎正常运行。但是,如果我将URL字段留空,则不应检查正则表达式验证,或者只是返回“没有给出URL”这样的消息。
以下是我正在使用的当前代码示例:
array(
'name' => 'programurl1',
'attributes' => array(
'type' => 'text',
'error_msg' => 'Enter Valid Program URL 1',
'label_msg' => 'Program URL 1 *'
),
'validation' => array(
'required' => true,
'filters' => array(
array(
'name' => 'StripTags'
),
array(
'name' => 'StringTrim'
)
),
'validators' => array(
array(
'name' => 'Regex',
'options' => array(
'pattern' => '/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/'
)
)
)
)
)
当URL字段为空时,我不确定如何完成我要查找的内容。
答案 0 :(得分:0)
您可以使用text
类型代替类型url
。这特别是为了输入网址值:
$this->add(array(
'name' => 'programurl',
'type' => 'Zend\Form\Element\Url',
'options' => array(
'label' => 'Program URL 1'
),
'attributes' => array(
'required' => 'required'
)
));
url元素是一个特殊的HTML5元素,另请参阅docs。
Zend \ Form \ Element \ Url旨在与类型为url的HTML5输入的Zend \ Form \ View \ Helper \ FormUrl配对。此元素将过滤器和Zend \ Validator \ Uri验证器添加到其输入过滤器规范中,以验证服务器上的HTML5 URL输入值。
Afaik如果浏览器无法呈现url输入元素,它只会将文本输入显示为后备。