RegEx验证号码

Tob*_*lbs 2 regex validation actionscript-3

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

该号码具有以下格式:

XXXXXXX-XX-X其中X0和之间的数字9.

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

你看到我做错了吗?

p.s*_*w.g 5

你的模式中有一个拼写错误.第三个]应该是}:

/[0-9]{6}\-[0-9]{2}\-[0-9]{1}/
Run Code Online (Sandbox Code Playgroud)

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

/[0-9]{6}-[0-9]{2}-[0-9]/
Run Code Online (Sandbox Code Playgroud)

根据您所使用的正则表达式引擎,你也许可以替代\d[0-9].在JavaScript中它们是等价的,然而,在许多引擎中,它们略有不同.\d适用于Unicode数字,而不是十进制数字(例如,它可能与复活节阿拉伯数字相匹配).如果这是可以接受的,您可以使用:

/\d{6}-\d\d-\d/
Run Code Online (Sandbox Code Playgroud)

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

/^[0-9]{6}-[0-9]{2}-[0-9]$/
Run Code Online (Sandbox Code Playgroud)

要么

/^\d{6}-\d\d-\d$/
Run Code Online (Sandbox Code Playgroud)