我想写一个正则表达式的国家代码,应限制为最多四个字符,只允许符号是+号。当使用+时,+必须在开头,并且它应该至少有一个数字。正则表达式的国家或地区代码
有效的情况下
+1
1
+12
12
+123
1234
无效的情况下
+
+1234
12345
1+
12+
<empty>
etc.
,我现在所拥有的表达。
/(\+\d{1,3})/
它可以更优雅吗?
- 谢谢您提前!
我想写一个正则表达式的国家代码,应限制为最多四个字符,只允许符号是+号。当使用+时,+必须在开头,并且它应该至少有一个数字。正则表达式的国家或地区代码
有效的情况下
+1
1
+12
12
+123
1234
无效的情况下
+
+1234
12345
1+
12+
<empty>
etc.
,我现在所拥有的表达。
/(\+\d{1,3})/
它可以更优雅吗?
- 谢谢您提前!
这应该工作。我用
/^(\+?\d{1,3}|\d{1,4})$/
编辑:
的// GM标志分别全球和多。如果您有一个字符串可以有多个地方来匹配国家/地区代码,或者您的字符串中有多行,则需要这些字符。如果你的字符串不仅仅是一个可能的国家代码,你需要在正则表达式的开始和结尾处去掉^
和$
。要使用正则表达式,你需要这样的事情:
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"
您需要对案例进行区分。无论有或没有前导的加号:
(\+\d{1-3})|(\d{1,4})
无论你是想锚表达行限制(^
和$
)或检查开头或结尾空格或类似显然取决于你的情况。
谢谢你伸出尼克。 –
您能否让我知道/ gm标志是什么?我如何适应我的实际代码? –
@VamshiGudipati我在我的编辑中解释过它。这取决于你的字符串是什么样子,但我认为我总体解释得很好。查看[this](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match),获取正则表达式的各种匹配方法。 –