正则表达式必须匹配所有正双精度数,小数点后最多两位数,大于0.01的数字以及科学记数法,例如(1.0E7)。
我设法分别解决了这两个问题。
用于匹配小数点后最多2位数和大于0.01的数字的所有正双精度数:
"^(?!0+\\.0+$)^\\d+(?:\\.\\d{1,2})?$"
对于包括科学记数法在内的任何数字:
"^[+-]?\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?$"
当我想把它们放在一起时,问题出现了。
我尝试了here描述的方法,但没有一个对我有效。 如果JavaScript / AngularJS具有任何重要性,则使用它。
有什么建议吗?
答案 0 :(得分:1)
尝试:
^$
^
$
重新添加到整个表达式中。结果:
^(?:(?:(?!0+\\.0+$)^\\d+(?:\\.\\d{1,2})?)|(?:[+-]?\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?))$
答案 1 :(得分:0)
您可以将正则表达式分成块
(^(?!0+\\.0+$)^\\d+(?:\\.\\d{1,2}))?$ ?(^[+-]?\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?$)