正如标题所暗示的那样,我需要一个“正则表达式”,只接受整数值和/或浮点数以及更多这些条件
我试试这个,但接受不符合上述条件的值(不幸的是,正则表达式不是很聪明)
var regex = /^(?=.*\d)\d*(?:\.\d*)?$/;
答案 0 :(得分:4)
正则表达式将是:
\b(?:40(:?\.0)?|[1-3][0-9](?:\.[0-9])?)\b
其中:
\b
匹配单词start / end [1-3]
将第一个数字限制在1-3 [0-9]
必须遵循必修数字,因此遵守规则10< = n< 40 (?:..)?
?
使该群组无法?:
无法捕获群组\.
匹配点字面[0-9]
正好一位数您的检查方法应该类似
var check = function (str) {
str = str.trim();
var re = /\b[1-3][0-9](\.[0-9])?\b/;
match = re.exec(str);
return match !== null && match[0] === str;
}
替代:
/$\s*(:?40(:?\.0)?|[1-3][0-9](\.[0-9])?)\s*^/
如果您有一个包含相关数字的字符串
,请使用后者\s*
匹配任何空格字符$
表示字符串的开头^
表示字符串的结尾答案 1 :(得分:2)
匹配10< = number< = 40:
\b(?:40|[1-3]\d(?:\.\d)?)\b