我有一个正则表达式:
/^(([1-9]+\.[0-9]*)|([1-9]*\.[0-9]+)|([1-9]+))([eE])([-+]?[0-9]+)?$/
验证指数值。它工作正常。但是一些值如21E,31E它正在考虑作为指数值,但像09E这样的值正在考虑非指数值。 我们能否为此提供解决方案,以便将21E,31E,09E等所有值视为非指数值。
谢谢
答案 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没有给出完整的规范。