验证字符串全是数字并且具有限定长度
我只想验证一个字符串,仅当它包含长度在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用
^[0-9]{7,9}$
。^ 匹配字符串的开头,而 $ 匹配结尾。
You'll want to use
^[0-9]{7,9}$
.^ matches the beginning of the string, while $ matches the end.
如果您想在较大的字符串中查找 7-9 位数字,可以使用 负向查找和Lookahead 验证匹配项前面或后面没有数字
这分解为
(? 确保下一个匹配项前面没有数字
(?![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
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 digitIf you simply want to ensure the entire string is a 7-9 digit number, anchor the match to the start and end with ^ and $