我想制作一个十进制正则表达式。但是我做不到。 文本框仅需3个字符。 第一个字符在0到7之间 第二个字符只是点(。) 最后一个字符在0到9之间 但值不能大于7.0
答案 0 :(得分:0)
您可能会发现这很有用:https://www.w3schools.com/jsref/jsref_obj_regexp.asp
JS是一种释放语言,您会发现可以像这样测试纯字符串数:
"4.5" < 7.0 == true
"7.1" < 7.0 == false
如果您使用正则表达式,则可能的解决方案如下所示:
var pattern = /^[0-6]\.[0-9]+|7\.0|\-[0-9]+\.[0-9]+$/;
var candidates = [
"1.1",
"8.2",
"9.1",
"12.1",
"1.9392",
"2.1",
"-3.8",
"222.0",
"-222.0",
"1",
"11",
"12."
];
for (var i=0; i < candidates.length; i++){
var result = "is '" + candidates[i] + "' a decimal and < 7.0 == ";
if (new RegExp(pattern).test(candidates[i])){
result += "true";
}
else {
result += "false";
}
console.log(result);
}