2

i try to validate a number with a simple scheme but i am not that good in Regular Expressions.

The number has this format:

XXXXXXX-XX-X where X is a number between 0 and 9.

I tried the following: /[0-9]{6}\-[0-9]{2]\-[0-9]{1}/ but it does not validate.

Do you see what i have done wrong?

4

1 回答 1

5

你的模式中有错字。第三个]应该是}

/[0-9]{6}\-[0-9]{2}\-[0-9]{1}/

不过,您可以进一步简化这一点。您不需要转义-字符类的外部,也不需要量词{1}

/[0-9]{6}-[0-9]{2}-[0-9]/

根据您使用的正则表达式引擎,您可能会替换\d[0-9]. 在 JavaScript 中它们是等价的,但是在许多引擎中,它们略有不同。\d旨在用于 Unicode 数字,而不是十进制数字(例如,它可能与Easter Arabic digits匹配)。如果这是可以接受的,您可以使用:

/\d{6}-\d\d-\d/

此外,如果您需要禁止任何前导或尾随字符,您可以考虑在模式周围添加 start ( ^) 和 end ( $) 锚:

/^[0-9]{6}-[0-9]{2}-[0-9]$/

或者

/^\d{6}-\d\d-\d$/
于 2013-10-16T18:16:32.973 回答