-3

我目前正在使用正则表达式模式验证 URL,它似乎工作正常。但是,如果我将 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 字段为空白时,我不确定如何完成我正在寻找的内容。

4

1 回答 1

0

text您可以使用type 来代替urltype 。这专门用于输入 url 值:

$this->add(array(
    'name' => 'programurl',
    'type' => 'Zend\Form\Element\Url',
    'options' => array(
        'label' => 'Program URL 1'
    ),
    'attributes' => array(
        'required' => 'required'
    )
));

url 元素是一个特殊的 HTML5 元素,另见文档

Zend\Form\Element\Url 旨在与 Zend\Form\View\Helper\FormUrl 配对,用于带有 url 类型的 HTML5 输入。该元素将过滤器和 Zend\Validator\Uri 验证器添加到它的输入过滤器规范中,用于验证服务器上的 HTML5 URL 输入值。

Afaik 如果浏览器无法呈现 url 输入元素,它只会将文本输入显示为后备。

于 2013-09-27T07:46:23.103 回答