只有数字,点,逗号和斜线

时间:2015-01-02 17:21:35

标签: regex

我正在尝试创建一个只接受以下

值的正则表达式
1
1.1
.1
1,1
,1
1/1
11
111
1111
and so on...

或者:一个数字后跟一个点或一个逗号或一个斜杠和一个数字。

\d*(?:\.|\,|\/)\d

使用这个正则表达式我只捕获1.1。1,1,1,1但我无法捕获用户是否只输入一个数字,例如1或11或任何具有未知位数的整数。

4 个答案:

答案 0 :(得分:4)

正则表达式可以修改为

\d*([.,\/]?\d+)

Regex Demo

答案 1 :(得分:2)

这是我认为符合您需求的简短版本:

\d?[.,\/]?\d+

模式是

\ d? :一个可选数字,匹配1.1,1 / 1或1,1。如果1111.1111等有效,请更改为\ d *

[。,/]? :可选的单个句点,逗号或斜杠

\ d +:一个或多个数字。

读取&#34;或点(...)和末尾的数字&#34;,这可能更准确(也许你的意思是点/斜杠/逗号之后只有一位数?)< / p>

\d*[.,\/]?\d

哪个是

\ d *:任意数量的数字

[。,/]?:可选的分隔符

\ d:一个数字

答案 2 :(得分:0)

\d*(?:\.|\,|\/\d+)*

试试这个。看看演示。

https://www.regex101.com/r/fG5pZ8/21

答案 3 :(得分:0)

如果要验证按键上的用户输入或其他内容,
你也需要这个表格1,

这应涵盖所有基础。

 #  ^(?:\d+(?:[.,/]\d*)?|[.,/]\d+)$

 ^ 
 (?:
      \d+                 # Forms 1 or 1, or 1,1
      (?: [.,/] \d* )?
   |                    # or,
      [.,/] \d+           # Form ,1 only
 )
 $