我需要一个十进制的正则表达式,我认为它很简单,但是我对此很陌生

时间:2018-09-17 21:38:29

标签: javascript jquery regex jquery-mask

我想制作一个十进制正则表达式。但是我做不到。 文本框仅需3个字符。 第一个字符在0到7之间 第二个字符只是点(。) 最后一个字符在0到9之间 但值不能大于7.0

1 个答案:

答案 0 :(得分:0)

您可能会发现这很有用:https://www.w3schools.com/jsref/jsref_obj_regexp.asp

JS是一种释放语言,您会发现可以像这样测试纯字符串数:

"4.5" < 7.0 == true
"7.1" < 7.0 == false

如果您使用正则表达式,则可能的解决方案如下所示:

  • 确保该值为十进制
  • 确保该值是<7.0

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);
}