正则表达式PHP和HTML模式
目标是将与此PHP代码正则表达式相同的正则表达式放入HTML模式属性中。 这和正则表达式的模式是一样的正则表达式PHP和HTML模式,php,html,Php,Html,目标是将与此PHP代码正则表达式相同的正则表达式放入HTML模式属性中。 这和正则表达式的模式是一样的 pattern="[A-Z \'.-]{2,20}$" 这个 if (preg_match ('/^[A-Z \'.-]{2,20}$/i', $trimmed['first_name'])) { ... PHP使用i修饰符,使其不区分大小写。无法在模式中指定此修饰符,因此需要同时编写大写和小写A-Za-z 没有必要在HTML中转义”;这只在PHP中需要,因为它被用来引用字符串本身 HTM
pattern="[A-Z \'.-]{2,20}$"
这个
if (preg_match ('/^[A-Z \'.-]{2,20}$/i', $trimmed['first_name'])) {
...
PHP使用
i
修饰符,使其不区分大小写。无法在模式中指定此修饰符,因此需要同时编写大写和小写A-Za-z
没有必要在HTML中转义”
;这只在PHP中需要,因为它被用来引用字符串本身
HTML属性中不需要$
。模式将自动定位在输入的开始和结束处
所以你想要的是:
您在PHP
中使用的表达式使用了不敏感
regex标志,因为表达式末尾有/i
。正因为如此,它才不会关心这个案子。pattern属性中的表达式将与大小写有关。两个使其相同,您可以执行以下操作:
不区分大小写:
HTML
[A-Z a-z \'.-]{2,20}$
PHP
/^[A-Z \'.-]{2,20}$/i
区分大小写:
HTML
[A-Z \'.-]{2,20}$
PHP
/^[A-Z \'.-]{2,20}$/
您应该使用此正则表达式获得相同的结果:pattern=“[a-zA-Z.-]{2,20}$”
什么是“HTML模式”?@tadman HTML允许在
元素中使用模式
属性,浏览器将自动检查输入的值是否与regexp匹配。我能找出的唯一区别是,在PHP模式上标记字符串的开头(使用^),而在HTML模式上未定义该模式的开头。@LucianoGiordano HTML会自动锚定该模式,你不需要明确地写出来。@Barmar如果这个问题是关于这个问题的,那是有意义的,但措辞还很不清楚。这正是我刚才在评论中解释的。@LucianoGiordano我在写答案时,你正在评论。