我需要一个有效时区的正则表达式,尝试以下方法。
但是我不确定。
请帮助我找出以下正则表达式中的任何错误。
编辑:
这里冒号和分钟是可选的。我如何将其更改为强制性。
如果没有分钟,则用户应输入00(+05:00)。
请帮我解决这个问题。
var chkzone = "+05:30"
if(chkzone .match(/^(Z|[+-](?:2[0-3]|[01]?[0-9])(?::?(?:[0-5]?[0-9]))?)$/))
{
alert('works out');
}
else
{
alert("Time zone wrong")
}
最佳答案
以下正则表达式将时区与必需的两位数小时/分钟或字母Z
匹配:
/^(?:Z|[+-](?:2[0-3]|[01][0-9]):[0-5][0-9])$/
说明:
^ # Start of string
(?: # Match the following non-capturing group:
Z # Either a literal Z
| # or
[+-] # a plus or minus sign
(?: # followed by this non-capturing group:
2[0-3] # Either a number between 20 and 23
| # or
[01][0-9] # a number between 00 and 19
) # End of inner non-capturing group
: # Match a literal colon
[0-5][0-9] # Match a number between 00 and 59
) # End of outer non-capturing group
$ # End of string
看到它live on regex101.com。