验证字符串全是数字并且具有限定长度

发布于 2024-08-04 18:50:59 字数 99 浏览 4 评论 0原文

我只想验证一个字符串,仅当它包含长度在 7 到 9 之间的“0-9”字符时。

我拥有的是 [0-9]{7,9} 但这也匹配一个包含 10 个字符的字符串,我不这样做不想。

I want to validate a string only if it contains '0-9' chars with length between 7 and 9.

What I have is [0-9]{7,9} but this matches a string of ten chars too, which I don't want.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

土豪我们做朋友吧 2024-08-11 18:50:59

您需要使用 ^[0-9]{7,9}$

^ 匹配字符串的开头,而 $ 匹配结尾。

You'll want to use ^[0-9]{7,9}$.

^ matches the beginning of the string, while $ matches the end.

荒岛晴空 2024-08-11 18:50:59

如果您想在较大的字符串中查找 7-9 位数字,可以使用 负向查找和Lookahead 验证匹配项前面或后面没有数字

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

这分解为

  • (? 确保下一个匹配项前面没有数字
  • < code>[0-9]{7,9} 根据需要匹配 7-9 位
  • (?![0-9]) 确保下一个字符不是数字

如果您只是想要确保整个字符串是 7-9 位数字,请使用 ^ 和 $ 将匹配锚定到开头和结尾

^[0-9]{7,9}$

If you want to find 7-9 digit numbers inside a larger string, you can use a negative lookbehind and lookahead to verify the match isn't preceded or followed by a digit

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

This breaks down as

  • (?<![0-9]) ensure next match is not preceded by a digit
  • [0-9]{7,9} match 7-9 digits as you require
  • (?![0-9]) ensure next char is not a digit

If you simply want to ensure the entire string is a 7-9 digit number, anchor the match to the start and end with ^ and $

^[0-9]{7,9}$
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文