0

How can I check if a string contains at least 1 series of exactly 10 consecutive digits ?

For example:

1234567890 PASS

asdf 1234567890 asdf PASS

asdf 1234567890 asdf 1234567890 PASS

asdf1234567890asdf PASS

asdf 123456789 asdf FAIL

asdf 12345678901 asdf FAIL

asdf 12345 67890 asdf FAIL

etc...

4

3 回答 3

3
/(^|\D)\d{10}($|\D)/

这匹配 10 个数字,前面是行首或非数字,后跟行尾或非数字。

正则表达式

于 2013-05-16T01:29:15.723 回答
2

您可以对非数字的任何内容使用负前瞻和后瞻。请注意,这与非数字匹配不同。此外,唯一的捕获组(如果您使用括号)恰好包含您要查找的 10 位数字。

小提琴

(?<![0-9])([0-9]{10})(?![0-9])

-- 或 -- (同样的东西更短)

(?<!\d)(\d{10})(?!\d)
于 2013-05-16T01:47:50.203 回答
-3

尝试这个:

preg_match("/\d{10}/u", $input)

或者可能

preg_match("\d{10}", $input)

我要离开这里,我没有打开编辑器来检查这些。

于 2013-05-16T01:15:29.550 回答