7

我正在尝试编写一个正则表达式以允许数字和中间只有一个连字符(不能在开头或结尾)说 pattern: 02-04,02是可以接受的,但是 pattern: --or -or -02or 04-or02-04-06是不可接受的

我尝试过这样的事情,但这将允许 - 在开始时也允许多个 -

'/^[0-9 \-]+$/'

我对正则表达式不太擅长,所以稍微解释一下会很有帮助。

编辑:很抱歉再次打扰您,但我需要只有 2 位数字(123-346)的数字应该被视为无效。

4

3 回答 3

14

试试这个:

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

一位或两位数字,后跟(可选)(连字符后跟一位或两位数字)

于 2012-08-23T10:41:55.433 回答
5

相当容易:

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

至少一个 ( +) 数字 ( \d),后跟包含连字符减号 ( -) 的可选组,后跟至少一个数字。

于 2012-08-23T10:41:37.160 回答
2

对于仅包含该模式的字符串,以下应该有效

^(\d{2}-)?\d{2}$

一组 2 位数字,后跟负号,以一组 2 位不带负号的数字结尾。

于 2012-08-23T10:58:47.690 回答