我对正则表达式相当陌生,我有时间得到一个我制定的可以正常工作的表达式。以下是我制定的表达方式。
^((?!^1[0-6]*\.?[0-2][0-4]+)^(\d+))$
我正在尝试构建一个表达式来验证大于 16.24 的数字。输入需要能够接受像 17 这样的整数,而无需用户输入 17.00 来验证。关于我做错了什么的任何想法?
我对正则表达式相当陌生,我有时间得到一个我制定的可以正常工作的表达式。以下是我制定的表达方式。
^((?!^1[0-6]*\.?[0-2][0-4]+)^(\d+))$
我正在尝试构建一个表达式来验证大于 16.24 的数字。输入需要能够接受像 17 这样的整数,而无需用户输入 17.00 来验证。关于我做错了什么的任何想法?
您可以这样做的一种方法是使用正则表达式来提取数值,然后将它们解析为一个数字并将它们与所需的常量进行比较。
Javascript:代码示例
数字作为字符串:
var test = function(str){
return 16.24 < parseFloat(str);
};
console.log( test("234.23") == true ); // true
console.log( test("-234.23") == false ); // true
隐藏在带有其他字符的字符串中的数字。
var test = function (str) {
var re,
num;
if (/[eE]/.test(str)) {
// search for scientific numbers
re = /-?\d+(\.\d+)?[eE]\d+/;
} else {
// search for whole or decimal numbers
re = /-?\d+(\.\d{1,2})?/;
}
num = str.match(re);
return 16.24 < parseFloat(num);
};
console.log(test("input = 234.23") == true); // true
console.log(test("input = 2e34") == true); // true
console.log(test("input = -2e34") == false); // true
console.log(test("input = -234.23") == false); // true