Regex 如何在正则表达式中排除逗号(,)?

Regex 如何在正则表达式中排除逗号(,)?,regex,Regex,我来到了只需要[0-9或.]的场景,我使用了这个正则表达式: [0-9.]$ 此正则表达式接受0-9和。(小数点)。但是当我写这样的东西的时候 1,1 它还接受逗号(,)。如何避免这种情况?此正则表达式可以帮助您: /[0-9.]+/g 接受0到9位数字和点(.) 说明: 匹配下面列表中的单个字符[0-9.]+ +量词-在一次和无限次之间进行匹配,尽可能多地进行匹配,根据需要进行回馈(贪婪) 0-9介于0(索引48)和9(索引57)之间的单个字符(区分大小写) 与字符匹配。字面意思(区分

我来到了只需要[0-9或.]的场景,我使用了这个正则表达式:

[0-9.]$
此正则表达式接受0-9和。(小数点)。但是当我写这样的东西的时候

1,1 

它还接受逗号(,)。如何避免这种情况?

此正则表达式可以帮助您:

/[0-9.]+/g
接受0到9位数字和点(.)

说明:

匹配下面列表中的单个字符
[0-9.]+

+
量词
-在一次和无限次之间进行匹配,尽可能多地进行匹配,根据需要进行回馈(贪婪)

0-9
介于0(索引48)和9(索引57)之间的单个字符(区分大小写)

与字符匹配。字面意思(区分大小写)

你可以测试一下


一旦您正在寻找解析数字的方法(您说过点代表小数),您可能不希望字符串以点开头,也不以点结尾,并且必须只接受一个点。如果是您的情况,请尝试使用:

^(\d+\.?\d+|\d)$
其中:

  • \d+
    表示任意数字(一个或多个)
  • \.?
    表示零或一个文字点
  • \d
    表示任意数字(仅一个)
你可以看到它在工作



或者您可能希望接受以点开头的字符串,这通常被接受为
0
的整数部分,在这种情况下,您可以使用
^\d*.?\d+$

此正则表达式
[0-9.]$
由一个字符类组成,该字符类与一行
$
末尾的数字或点相匹配

如果您只想匹配一个数字或一个点,您可以添加
^
以在行首声明位置:

如果要匹配一个或多个数字,可以使用点和一个或多个数字:


您的正则表达式说“输入必须以数字0-9或句点结束”,它不关心最后一个字符之前的任何内容。将其更改为包含所有字符(+或*),并从开头开始(^)。点是一个通配符:它可以匹配任何单个字符(字母、数字、空格等)。必须使用斜杠转义点:
\。
本例中的“点”表示“任何单个字符”。如果只接受“.”,则正则表达式必须为[0-9\.]$。请尝试使用
/[0-9.]+/g
@链接,点不需要在字符类中转义。这需要两个或更多数字。从0到9的数字将失败。我建议在开头接受“.”(
\d*\.?\d+$
),它在开头被普遍认为是隐式的“0”。“需要“.”不在开头和结尾,如果您真的需要使用单个正则表达式,则需要更昂贵的处理。”bitifet很好地指出!我刚刚编辑了我的正则表达式,以便不允许在开头和结尾使用点,而是接受从
0
9
的数字。此外,我还添加了一条关于您考虑的说明,我认为这是完全正确的。谢谢你,好的。我还忽略了一个事实,即两个正则表达式可以通过“|”操作符组合成一个正则表达式作为替代项(甚至有时我也这样做了!)。干得好