地址验证限制 3 个以上的特殊字符



我正在使用验证地址字段,我需要一些验证正则表达式来拒绝超过 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');

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

我试过 任何帮助将不胜感激。 提前致谢:)

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

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

正则表达式测试

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

Php 测试

最新更新