如何向正则表达式添加规则

时间:2018-06-28 18:59:18

标签: php regex

早上好,我有此表单元素

   <?php echo new \App\Http\Render\Form\Element\Text([
                      'value' => (isset($this->entity['str'])) ? $this->entity['str'] : '',
                      'elementName' => 'item[str]',
                      'elementID' => 'str',
                      'required' => true,
                      'class' => 'form-control',                   
                        'attributes' => [
                            'data-msg-required' => 'Bitte geben Sie Ihre Straße inkl. Hausnummer an.',//Bitte geben Sie Ihre Stra&szlig;e ein.
                            'regex' => "[/.*?(\d+)$/]",
                            'data-rule-minlength'=>"6",
                            'data-msg-minlength' => 'Bitte verwenden Sie keine Zahlen und Sonderzeichen.',
                            'data-msg-regex' => 'Bitte geben Sie Ihre Straße inkl. Hausnummer an.',
                        ],
                      'placeholder'=>" "
                  ]) ?>

如您所见,当字符串后面是数字epsen时,我使用正则表达式记下错误。请告诉我为什么在字符串后面加点后为什么看不到错误?像这种情况下,“ Strabe”。当字符串末尾的字符串中没有数字时,如何设置正则表达式以记录错误?

1 个答案:

答案 0 :(得分:-1)

您的正则表达式模式[/.*?(\d+)$/]包含在[]中,这意味着一类字符,因此包含方括号之间任何字符的字符串将与您的正则表达式模式,包括点.。也不需要将斜线(/)作为附件。

您应该只写'regex' => ".*?(\d+)$"