在文本中搜索并验证一年(四个连续数字)

时间:2012-10-29 20:04:30

标签: regex

如何验证字符串只有 4 连续数字或没有数字?

我知道/\d{4}/会验证 4 个连续数字,但如果我的字符串为dh25ah1233dadh3,则必须无效。

有效字符串

dkskdsokd
adad dadad
addad1257adada
1587dadad
sasasas7854

无效的字符串

dh25ah1233dadh3
fsdfdfd1982fdf2
1some1422dd

1 个答案:

答案 0 :(得分:2)

如果我理解这个问题,那就像是:

/^(?:\D*\d{4}\D*)*$/

匹配任何数量的子模式“一些非数字,然后是4位数,然后是一些非数字”。

如果你只想要一组4位数,那就是

/^\D*(?:\d{4})?\D*$/

编辑 - 如果您想要第一个,并且您不希望接受8(或12或16 ...)个数字的组,您可以执行以下操作:

/^(?:\D*\d{4}\D+)*$/

编辑让我们再试一次:

/^(?:\D*\d{4}\D+)*(?:\D*\d{4})?$/

这允许字符串以4位数组结束。