地址验证限制超过3个特殊字符

时间:2018-06-08 10:39:40

标签: php regex validation

我正在验证地址字段,我需要一些验证正则表达式来拒绝超过3个特殊字符(逗号)

有效格式

New York Marriott Marquis, New York, NY, USA

格式无效

New York,# Marriott, Marquis,& New York, NY, USA,
$$$^^^&&&&&&,&&&&&########New York, NY, USA

preg_match('/^[^*|\":<>[\]{}`\\()';@&$]+$/');

preg_match('/[*|\":<>[\]{}`\\()';@&$]/');

preg_match('/^[a-z0-9- ]+$/i');

但所有这些都没有按照我的需要运作。

我试过了 任何帮助将不胜感激。 在此先感谢:)

1 个答案:

答案 0 :(得分:2)

尝试使用否定前瞻(?!断言下面的内容与character class中的任何字符都不匹配4次:

^(?!(?:.*[*|\":[\]{}`\()';@&$,]){4}).+$

Regex test

$str = 'New York Marriott Marquis, New York, NY, USA';
preg_match('/^(?!(?:.*[*|\":<>[\]{}`\()\';@&$,]){4}).+$/', $str, $matches);
var_dump($matches);

Php test