1

我正在尝试提出一些正则表达式来匹配任意数量的数字组的 1 个连字符。无字符 ([az][AZ])。

123-356-129811231235123-1235612346123451235

/[^\d-]/g

上面的一个将匹配下面的字符串,但它会让以下内容通过:

1223--1235---123123------

我正在查看以下帖子如何将连字符与正则表达式匹配?寻求答案,但我没有找到任何接近的东西。

@Konrad Rudolph 举了一个很好的例子。

正则表达式匹配 7-12 位数字;可能包含空格或连字符

这个工具对我有用http://www.gskinner.com/RegExr/

4

2 回答 2

3

假设它不能以连字符开头:

^\d(-\d|\d)*$

分解:

^             # match beginning of line
   \d         # match single digit
   (-\d|\d)+  # match hyphen & digit or just a digit (0 or more times)
$             # match end of line

这使得每个连字符必须紧跟一个数字。但请记住,以下是合法模式的示例:

213-123-12314-234234
1-2-3-4-5-6-7
12234234234

gskinner 示例

于 2013-03-07T22:00:16.263 回答
1

或者:

^(\d+-)+(\d+)$

所以它是一组或多组数字,后跟连字符+最后一组数字。没什么特别的,但在我的测试中,它只有在两边都有连字符和数字时才匹配。

于 2013-03-07T22:24:38.077 回答