我使用this solution来表示科学记数法:
/-?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/
我想添加少量的空间保护,所以我还要在小数点后面禁止尾随零,并将零值作为指数。
我认为在[1-9]
之后添加\.\d
将不会强制执行尾随零,但我认为它还会在.
之后强制至少两个数字,这是不可取的。
我没有必要的经验来正确修改这个正则表达式。
我的意图如何实施?
答案 0 :(得分:1)
你可以做出这个简单的改变:
/-?(?:0|[1-9]\d*)(?:\.\d*[1-9])?(?:[eE][+-]?[1-9]\d*)?/
请注意[1-9]\d*
将禁止前导零的指数。
答案 1 :(得分:1)
我认为在
[1-9]
之后添加\.\d
将不会强制执行尾随零,但我认为它还会在.
之后强制至少两个数字
没有\d
实际上是\d*
,这意味着它只会强制执行一个[1-9]
(前面有无或很多 \d
s) 。所以
/-?(?:0|[1-9]\d*)(?:\.\d*[1-9])?(?:[eE][+\-]?\d+)?/
/-?(?:0|[1-9]\d*)(?:\.\d*[1-9])?(?:[eE][+\-]?[1-9]\d*)?/ # no (leading) zero exponent
将工作。但是,如果小数部分明显,它会在点之后强制执行一位数。