gpt4 book ai didi

regex - Zend 框架 : why does whitespace validate against my regular expression?

转载 作者:行者123 更新时间:2023-12-02 07:49:05 24 4
gpt4 key购买 nike

我有以下代码:

$sfKeyword = new Zend_Form_SubForm();

$tfKeyword = $sfKeywords->createElement('text', 'keyword');
$tfKeyword->setLabel('Keyword: ');
$tfKeyword->addValidator('regex', false, array('/[a-zA-Z_][a-zA-Z_0-9]*/'));

这个正则表达式验证关键字,应该只允许 a-z、A-Z 和 _ 作为第一个字符,然后另外允许数字 0-9、零次或多次出现。

但是当输入一些中间有空格的字符串时,该字符串会通过验证器而不会出现错误消息。事实并非如此。

注意,我也试过

'/[a-zA-Z_][a-zA-Z_0-9]*/s'

但没有区别(正如预期的那样)。

正则表达式(或 Zend Framework)有什么问题?

最佳答案

问题是您的正则表达式没有锚定。这意味着只要字符串的某些部分与正则表达式匹配,正则表达式就会匹配。相反,锚定它:

/^[a-zA-Z_][a-zA-Z_0-9]*$/

前导 ^ 字符表示“字符串的开始”,尾随 $ 表示“字符串的结尾”。所以现在它将匹配任何以 [a-zA-Z_] 开头,然后是一个或多个 [a-zA-Z_0-9] 的字符串,直到字符串的结尾。

关于regex - Zend 框架 : why does whitespace validate against my regular expression?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4739590/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com