我想检查数字长度是否在6到8之间,我尝试了很多方法,但是对我来说不起作用。有人可以帮我吗?
我的代码:
方法1:
regex = RegExp(/[-]{0,1}[\d{6,8}]*[\.]{0,1}[\d{6,8}]+/g),
方法2:
regex = RegExp(/[-]{0,1}[\d]{6,8}*[\.]{0,1}[\d]{6,8}+/g),
我已经尝试了以上两种方法,但没有任何帮助实现这一目标。请帮我解决问题。
答案 0 :(得分:4)
如果您想检测其中只有8位数字的字符串,请考虑采用这种方法:
var number = "314159.32";
if (/^-?[0-9]+(?:\.[0-9]+)?$/.test(number) &&
/^[0-9]{6,8}$/.test(number.replace(/[.-]/g, ""))) {
console.log("valid");
}
else {
console.log("invalid");
}
此处使用单个正则表达式的困难是可选的十进制成分,它可能会出现也可能不会出现。但是,假设输入是一个数字,并且没有小数部分,那么所需的正则表达式模式很容易。
答案 1 :(得分:1)
您的描述与您的尝试不符。
通常,您不必要使用字符类。尝试此操作,它匹配6到8位数字之间的数字,并且可以在前面加上-
:
regex = RegExp(/-?\d{6,8}/g);
如果您要匹配其他样式,请描述它们并添加示例。
答案 2 :(得分:-1)
您的问题不是很清楚,请提供一些有效字符串的样本。但我不能建议您使用此正则表达式:
^\d{6,8}$