【发布时间】:2019-03-23 15:39:15
【问题描述】:
我在用户提供的地址字段上使用Laravel regex validation。
我发现多个帖子有助于验证地址字符串是否是有效的邮政信箱,例如 here 或 here,但我需要做相反的事情并确保提供的字符串不是邮政信箱。
PS 我不需要做任何地址验证,只是想确保它不是邮政信箱。
我发现这条规则非常有用,因为它会检查是否存在邮政信箱号码
/^\s*(.*((p|post)[-.\s]*(o|off|office)[-.\s]*(b|box|bin)[-.\s]*)|.*((p|post)[-.\s]*(o|off|office)[-.\s]*)|.*((p|post)[-.\s]*(b|box|bin)[-.\s]*)|(box|bin)[-.\s]*)(#|n|num|number)?\s*\d+/i
有人可以帮我为这个或类似的东西创建相反的表达吗?
我怀疑我必须使用负前瞻?!
【问题讨论】:
-
您应有尽有。提取备选方案,将它们放入一个组
(?:...|...|...|....),然后将该组放入^(?!.*<group>).*$ -
@WiktorStribiżew 你把它标记为重复,只给了我一个提示,我仍然无法解决这个问题,因为我不太擅长正则表达式
-
我认为除了你自己之外没有人可以帮助你,因为your pattern is not valid。一旦您知道模式中的确切分支,提示就足够了。
-
@WiktorStribiżew 我能够解决这个问题,因为您将其标记为重复,所以无法发布答案,我认为这可能对可能遇到相同问题的人有用
-
请修复您在帖子中首先尝试的第二个正则表达式,某处有错字。
标签: php regex laravel validation laravel-validation