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

Only Numbers, dots, comma and slash

我正在尝试创建一个只接受以下值的正则表达式

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 或任何位数未知的整数,我将无法捕获。

正则表达式可以修改为

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

Regex Demo

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

尝试 this.See 演示。

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

这是我认为可以满足您需求的简短内容:

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

模式是

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

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

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

阅读 "or a dot (...) and a number at the end",这可能更准确(也许你的意思是 dot/slash/comma 之后的一位且只有一位?)

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

这是

\d* :任意数量的数字

[.,/]?: 一个可选的分隔符

\d : 一个 数字

如果您在按键或其他方面验证用户输入,
您也需要此表格 1,

这应该涵盖所有基础。

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

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