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