小编Dav*_*eid的帖子

在HTML5模式输入元素属性上使用什么是安全的PCRE正则表达式分隔符?

似乎HTML5规范(以及因此ECMA262)允许<input type="text" pattern="[0-9]/[0-9]" />匹配字符串'0/0',即使正斜杠没有被转义.像Drupal这样的Web应用程序希望为不支持HTML5的浏览器提供服务器端验证,例如:

<?php
preg_match('/^(' . $pattern . ')$/', $value);
?>
Run Code Online (Sandbox Code Playgroud)

不幸的是,字符串'[0-9]/[0-9]'不是有效的PRCE正则表达式.似乎大多数(如果不是全部)支持HTML5的浏览器都支持这两者pattern="[0-9]/[0-9]" 并且 pattern="[0-9]\/[0-9]"引发了一个问题 - 我们可以使用什么作为分隔符来运行这种模式来对抗Perl风格的正则表达式?

我们已针对W3C规范提交了错误报告,但这里的浏览器是错误的吗?是否需要澄清HTML5规范?我们可以在PHP中使用解决方法吗?

php regex html5 pcre

12
推荐指数
2
解决办法
1299
查看次数

标签 统计

html5 ×1

pcre ×1

php ×1

regex ×1