0

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

我知道这/\d{4}/将验证4个连续的数字,但如果我的字符串是 dh25ah1233dadh3,它一定是无效的。

有效字符串

dkskdsokd
adad dadad
addad1257adada
1587dadad
sasasas7854

无效的字符串

dh25ah1233dadh3
fsdfdfd1982fdf2
1some1422dd
4

1 回答 1

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 位数字组结尾。

于 2012-10-29T20:07:41.030 回答