用于验证指数值的正则表达式

时间:2017-07-10 13:24:44

标签: javascript regex

我有一个正则表达式:

/^(([1-9]+\.[0-9]*)|([1-9]*\.[0-9]+)|([1-9]+))([eE])([-+]?[0-9]+)?$/

验证指数值。它工作正常。但是一些值如21E,31E它正在考虑作为指数值,但像09E这样的值正在考虑非指数值。 我们能否为此提供解决方案,以便将21E,31E,09E等所有值视为非指数值。

谢谢

1 个答案:

答案 0 :(得分:0)

尾数是0或非零数字,可能后跟数字。

0|([1-9][0-9]*)

小数部分可能是空的数字字符串。

[0-9]*

实数是尾数,后跟一个点后跟一个小数部分。

(0|([1-9][0-9]*))\.[0-9]*

指数是e后跟尾数。

(eE)(0|([1-9][0-9]*))

科学数字是一个实数,后面跟一个指数

(0|([1-9][0-9]*))\.[0-9]*([eE](0|([1-9][0-9]*)))?

有些变体是可能的,因为OP没有给出完整的规范。