【发布时间】:2011-03-29 08:10:24
【问题描述】:
我在遵循 javascript 和 php 的正则表达式规则方面需要帮助。
JS
var charFilter = new RegExp("^[A|B].+[^0123456789]$");
PHP
if (!preg_match('/^[A|B].+[^0123456789]$/', $data_array['sample_textfield'])) {
这个正则表达式是关于
第一个字符必须以 A 或 B 开头,最后一个字符不能包含 0 到 9。
我有另一个验证,字符必须是最少 3 个字符和最多 6 个数字。
我要添加的新规则是,如果第一个字母是 A,第二个字符不能是 C。
这意味着
ADA(有效) ACA(无效)
所以我像这样更改了正则表达式代码
JS
var charFilter = new RegExp("^(A[^C])|(B).+[^0123456789]$");
PHP
if (!preg_match('/^(A[^C])|(B).+[^0123456789]$/', $data_array['sample_textfield'])) {
它适用于第一个和第二个字符。如果我输入
ACA(它说无效),但如果我输入 AD3(它说有效),它不再检查最后一个字符。最后一个字符不能包含 0 到 9 的数字,但它显示为有效。
谁能帮我修复那个正则表达式代码?非常感谢。
【问题讨论】:
-
请注意,
[A|B]匹配以下之一:A、|和B。|并不意味着 OR 在字符类中!
标签: php javascript regex