猿问

十进制数正则表达式,其中十进制后的数字是可选的

我需要一个验证数字的正则表达式,但不需要小数点后的数字。即。


123

123.

123.4

都是有效的


123..

将无效


任何将不胜感激!


精慕HU
浏览 862回答 3
3回答

绝地无双

使用以下内容:/^\d*\.?\d*$/^ -生产线的起点;\d* -0或更多数字;\.?-一个可选的点(由于在正则表达式中转义,.是一个特殊字符);\d* -0或更多数字(小数部分);$ - 队伍的尽头。这允许0.5小数而不是要求前导零,例如0.5

ABOUTYOU

/\d+\.?\d*/一个或多个数字(\d+),可选的句点(\.?),零个或多个数字(\d*)。根据您的用法或正则表达式引擎,您可能需要添加开始/结束行锚点:/^\d+\.?\d*$/

尚方宝剑之说

您需要如下所示的正则表达式才能正确执行此操作:/^[+-]?((\d+(\.\d*)?)|(\.\d+))$/使用扩展修饰符(Perl支持)的带空格的相同表达式:/^  [+-]? ( (\d+ (\.\d*)?)  |  (\.\d+) ) $/x或带有注释:/^           # Beginning of string [+-]?       # Optional plus or minus character (           # Followed by either:   (           #   Start of first option     \d+       #   One or more digits     (\.\d*)?  #   Optionally followed by: one decimal point and zero or more digits   )           #   End of first option   |           # or   (\.\d+)     #   One decimal point followed by one or more digits )           # End of grouping of the OR options $           # End of string (i.e. no extra characters remaining) /x          # Extended modifier (allows whitespace & comments in regular expression)例如,它将匹配:12323.4534。.45-123-273.15-42。-.45+516+9.8+2。+.5并将拒绝这些非数字:。(单小数点)- (负小数点)+。(加上小数点)(空字符串)比较简单的解决方案可能会错误地拒绝有效数字或匹配这些非数字。
随时随地看视频慕课网APP
我要回答