RegEx验证号码

时间:2013-10-16 18:15:22

标签: regex actionscript-3 validation

我尝试用简单的方案验证一个数字,但我在正则表达式中并不是那么好。

该号码具有以下格式:

XXXXXXX-XX-X其中X09之间的数字。

我尝试了以下内容:/[0-9]{6}\-[0-9]{2]\-[0-9]{1}/但它没有验证。

你看到我做错了吗?

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$/