我尝试用简单的方案验证一个数字,但我在正则表达式中并不是那么好。
该号码具有以下格式:
XXXXXXX-XX-X
其中X
是0
和9
之间的数字。
我尝试了以下内容:/[0-9]{6}\-[0-9]{2]\-[0-9]{1}/
但它没有验证。
你看到我做错了吗?
答案 0 :(得分: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/
此外,如果您需要禁止任何前导或尾随字符,您可以考虑在模式周围添加开始(^
)和结束($
)锚点:
/^[0-9]{6}-[0-9]{2}-[0-9]$/
或者
/^\d{6}-\d\d-\d$/