国家代码的正则表达式

新手上路,请多包涵

我正在尝试为国家代码编写一个正则表达式,它最多应限制为四个字符,唯一允许的符号是 + 号。使用+时,+必须在开头,并且至少要有一个数字。

有效案例

+1
1
+12
12
+123
1234

无效案例

+
+1234
12345
1+
12+
<empty>
etc.

我现在的表情。

 /(\+\d{1,3})/

能不能优雅一点?

-先感谢您!!

原文由 Brr Switch 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 624
2 个回答

这应该工作。我用了

/^(\+?\d{1,3}|\d{1,4})$/

查看结果

编辑:

//gm 标志分别是 globalmultiline 。如果您的字符串可以有多个位置来匹配国家代码,或者您的字符串中有多行,则需要这些。如果您的字符串不仅仅是一个可能的国家/地区代码,则需要在正则表达式的开头和结尾去掉 ^$ 。要使用正则表达式,您需要这样的东西:

 var regex = /^(\+?\d{1,3}|\d{1,4})$/gm
var str = "+123"
var match = str.match(regex);
//match is an array, with one result in this case. So match[0] == "+123"

原文由 Nick G 发布,翻译遵循 CC BY-SA 3.0 许可协议

国家代码可以是以下类型

  • +1
  • +91
  • +223
  • +1-224

javascript 正则表达式确保输入是一个

/^\+(\d{1}\-)?(\d{1,3})$/

原文由 Vinit Khandelwal 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题