1

我正在尝试使用正则表达式来按国家/地区验证电话号码。我按国家/地区进行电话格式,其中包含:

  • ^(\+33|0)([1-9][0-9]{8})$)验证正则表达式(示例:)
  • +33$2获取国际号码的转换(例如:)
  • 0$2获得国家号码的转换(例如:)

关于意大利,它变得越来越棘手。

大多数电话号码都是这样工作的:“+39 123456789”=>“ 0 123456789”

但对于移动设备,它是:“+39 3 123456789”=>“ 3 123456789”

这意味着,要获得国家电话号码,我必须添加一个 0,但手机号码除外。

到目前为止,我只能通过两种手机格式来实现它,一种用于手机,另一种用于其他手机。它们是相互排斥的。

手机=>

  • 验证正则表达式:^(\+393|3)([0-9]{9})$
  • 转换以获得国际号码:+393$2
  • 转换以获得国家号码:3$2

其他 =>

  • 验证正则表达式:^(\+39|0)([0-9]{9})$
  • 转换以获得国际号码:+39$2
  • 转换以获得国家号码:0$2

有什么办法可以一次性完成吗?

手机样品:

  • 0123456789
  • +39123456789
  • 3123456789
  • +393123456789
4

1 回答 1

0

组合表达式:

^(\+393|3|\+39|0)([0-9]{9})$

条件替换应该在代码中完成,根据$1.

于 2013-08-21T10:05:49.270 回答