我尝试使用简单的方案验证数字,但在正则表达式中我不太好。RegEx验证号码
数具有以下格式:
XXXXXXX-XX-X
其中X
是0
和9
之间的数字。
我试过以下内容:/[0-9]{6}\-[0-9]{2]\-[0-9]{1}/
但它不验证。
你看到我做错了吗?
我尝试使用简单的方案验证数字,但在正则表达式中我不太好。RegEx验证号码
数具有以下格式:
XXXXXXX-XX-X
其中X
是0
和9
之间的数字。
我试过以下内容:/[0-9]{6}\-[0-9]{2]\-[0-9]{1}/
但它不验证。
你看到我做错了吗?
您的模式中存在拼写错误。第三]
应该是}
:
/[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$/
使用'\ d'而不是'[0-9]'进行简化(大多数语言)。 –
@ p.s.w.g:非常感谢。我不能相信我没看到这个错误:今天应该停止工作,谢谢你改进正则表达式! –
@BrianStephens我已经添加了一个替代模式和'\ d'和' [0-9]'。 –
什么语言是正则表达式吗? – zzzzBov
RegEx将在AS3中使用。 –
作为未来的注释,[tag:regex]标签要求添加要使用正则表达式的语言或工具。 – zzzzBov