【问题标题】:Combination of two regex两个正则表达式的组合
【发布时间】:2015-02-06 20:52:50
【问题描述】:

我正在使用表单验证器来验证我的注册表单上的某些字段。其中一个是电话字段,我为此准备了两个将提供验证的正则表达式。

regexp: {
regexp: 
>/(^01|^02|^071|^073|^074|^075|^076|^077|^078|^079)/, 
         /^((?!(012345|123456|234567|345678|456789|0{6,}|1{6,}|2{6,}|3{6,}|4{6,}|5{6,}|6{6,}|7{6,}|8{6,}|9{6,})).)*$/

message: 'The phone number is not valid'
                    }

我的问题是这两个中只有一个会起作用,而不是两者都起作用。知道如何修改它以使它们都可以工作吗?

【问题讨论】:

  • “这两个中只有一个可以工作,而不是两个” - 你的意思是你只能使用一个正则表达式,还是其中一个不能做你想做的事情(哪个?为什么?为什么? )?
  • 天哪,这太复杂了……也许简化它会让你的问题消失
  • 是的,只有一个可以在验证@user5288中工作
  • @RyanJ 没那么复杂......
  • @user2713650 这是一个见仁见智的问题......有很多重复的顺序和低效率,这使得你正在做的事情比它可能需要的更复杂。您为什么不详细说明您的预期验证标准是什么,然后寻求帮助?一般来说,我的意思是电话号码验证只是检查以确保号码符合特定格式,而不是号码本身(如果您拨打它)是有效的。

标签: javascript jquery regex expression


【解决方案1】:

这个正则表达式可以工作,但我仍然建议您可能找到一种不同的方式或一组标准来验证。不过这取决于你。

/^(0(?:[12]|7[145789]))(?!012345|123456|234567|345678|456789|0{6,}|1{6,}|2{6,}|3{6,}|4{6,}5{6,}|6{6,}|7{6,}|8{6,}|9{6,})/

这将确保数字以正确的前缀开头,并且不包含您指定的序列。

【讨论】:

  • 非常感谢。大声笑我特别被告知不幸的是它必须是这样 - 它不允许我投票,但非常感谢!
【解决方案2】:

您可以像这样将两者结合起来:

/^(?=(01|02|071|073|074|075|076|077|078|079))((?!(012345|123456|234567|345678|456789|0{6,}|1{6,}|2{6,}|3{6,}|4{6,}|5{6,}|6{6,}|7{6,}|8{6,}|9{6,})).)*$/

对我来说似乎是一种模糊的方式来执行一些相当简单的检查,但对他们自己来说。

【讨论】:

  • 感谢您的解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-14
  • 2021-12-30
相关资源
最近更新 更多