0

我很不擅长找出我需要搜索的东西的正则表达式。

我有这个字段的格式为######## - #。

这里的问题是,“破折号”前面最多可以有 10 个数字,“破折号”后面最多可以有 1 到两个数字。

我怎么可能只用正则表达式来实现这一点?

我可以\d{5,}-\d{1,}吗?哪个表示您需要在破折号前面至少有 5 个数字,在破折号之后至少需要 1 个数字?如果我在 js 中执行此操作,是否需要 dash 的特殊字符?

提前致谢。

4

4 回答 4

4

使用量词指定您的数量{min,max}

/\d{,10}-\d{1,2}/

您不需要转义,-因为它在字符类之外没有特殊含义。

于 2013-09-16T22:40:10.197 回答
2
 var m = /(\d{0,10})-(\d{1,2})/
 m[1] = // first set of numbers
 m[2] = // second set
于 2013-09-16T22:40:13.263 回答
1

像这样的表达式会起作用:

\d{1,10}-\d{1,2}

这将匹配 1 到 10 位数字,后跟一个破折号,然后是一个或两个附加数字。

当然,如果您希望第一组数字完全是可选的,您可以用{0,10}or替换第一个量词。{,10}

于 2013-09-16T22:41:05.543 回答
0

您需要使用量词。像这样的东西会起作用

[0-9]{1,10}-[0-9]{1,2} 或 [0-9]{0,10}-[0-9]{1,2} 如果可能

于 2013-09-16T22:44:07.957 回答