仅匹配Javascript样式数字的Javascript正则表达式
我试图创建一个javascript正则表达式,它只匹配有效的javascript样式数字。更多要求包括支持数字前面的可选减号或加号、小数点和指数符号(如1e-4或1E4),以及指数前面的可选符号 表达式可以接受点前面或后面的数字,但数字不能只是一个点。例如.2和2。是有效的,但不仅仅是点 理想情况下,表达式包含在/^…$/;格式 我得到了一些项目,但我的表达式应该能够传递有效的javascript值,如.5、.5或+5仅匹配Javascript样式数字的Javascript正则表达式,javascript,regex,Javascript,Regex,我试图创建一个javascript正则表达式,它只匹配有效的javascript样式数字。更多要求包括支持数字前面的可选减号或加号、小数点和指数符号(如1e-4或1E4),以及指数前面的可选符号 表达式可以接受点前面或后面的数字,但数字不能只是一个点。例如.2和2。是有效的,但不仅仅是点 理想情况下,表达式包含在/^…$/;格式 我得到了一些项目,但我的表达式应该能够传递有效的javascript值,如.5、.5或+5 function validNumber(number) { var
function validNumber(number) {
var regexNum = /^-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?$/;
return regexNum.test(number);
}
console.log(validNumber("0.0001")); // true
console.log(validNumber("-5")); // true
console.log(validNumber("0.3425")); // true
console.log(validNumber("1e-4")); // true
console.log(validNumber("1E-4")); // true
console.log(validNumber("1Ee-4")); // false
console.log(validNumber("-4.34")); // true
console.log(validNumber("Test123")); // false
console.log(validNumber("+-2")); // false
console.log(validNumber("5.")); // true
console.log(validNumber(".")); // false
console.log(validNumber(".5")); // Should be true, but passes as false
console.log(validNumber("-.5")); // Should be true, but passes as false
console.log(validNumber("+5")); // Should be true, but passes as false
有什么建议吗 请检查下面的正则表达式好吗 var模式=新的RegExp((^([-|+])([0-9]{0,12}?)(\)([0-9]){0,12}$)|(^([-|+])([0-9]){0,12}$) 您可以使用
/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)(?:[eE][-+]?[0-9]+)?$/
见
详细信息
-字符串的开头^
-可选的[-+]?
或+
符号-
-两个序列中的任意一个:(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)
-一个点和1+个数字\.[0-9]+
-或|
-1+位,然后是一个可选的[0-9]+(?:\[0-9]*)?
序列,后跟0+位
-可选指数部分:(?:[eE][-+]?[0-9]+)?
-一个[eE]
或e
e
-可选的加号或减号[-+]?
-1位或更多数字[0-9]+
-字符串结束$
var regexNum=/^[-+]?(?:\[0-9]+[0-9]+(?:\[0-9]*))(?:[eE][-+]?[0-9]+)?$/;
函数validNumber(编号){
返回regexNum.test(编号);
}
console.log(“0.0001”,validNumber(“0.0001”);//真的
console.log(“-5”,validNumber(“-5”);//真的
console.log(“0.3425”,validNumber(“0.3425”);//真的
console.log(“1e-4”,validNumber(“1e-4”);//真的
console.log(“1E-4”,validNumber(“1E-4”);//真的
console.log(“1Ee-4”,validNumber(“1Ee-4”);//假的
console.log(“-4.34”,validNumber(“-4.34”);//真的
console.log(“Test123”,validNumber(“Test123”);//假的
console.log(“+-2”,validNumber(“+-2”);//假的
console.log(“5”),validNumber(“5”);//真的
console.log(“.”,validNumber(“.”);//假的
console.log(“.5”,validNumber(“.5”);//应该是真的,但传递为假
console.log(“-.5”,validNumber(“-.5”);//应该是真的,但传递为假
控制台日志(“+5”,有效编号(“+5”)
Try/^[+-]?\d*\.?\d+(?:[eE][+-]?\d+)$/
您可以在上测试正则表达式,我已将您的测试复制到这里alert(0x5f+0b10101)