正则表达式允许数字和单个点

Mac*_*Mac 18 regex

允许数字点的正则表达式是什么?关于\D这只允许数字,但它不允许点,我需要它允许数字和一个点这是作为一个浮点值引用我需要keyup在jQuery中执行函数时有效,但我需要的只是正则表达式只允许我需要它允许.

这将使用JavaScript replace函数来删除非数字和其他符号(点除外).

干杯.

Håv*_*ard 45

如果你想允许11.2:

(?<=^| )\d+(\.\d+)?(?=$| )
Run Code Online (Sandbox Code Playgroud)

如果你想允许1,1.2并且.1:

(?<=^| )\d+(\.\d+)?(?=$| )|(?<=^| )\.\d+(?=$| )
Run Code Online (Sandbox Code Playgroud)

如果你只想允许1.2(只有花车):

(?<=^| )\d+\.\d+(?=$| )
Run Code Online (Sandbox Code Playgroud)

\d允许位数(而\D允许什么,但数字).

(?<=^| )检查数字前面是空格还是字符串的开头.(?=$| )确保字符串后跟一个空格或字符串的结尾.这可以确保该数字不是另一个数字的一​​部分或在单词或任何内容的中间.

编辑:添加更多选项,通过添加前瞻和后台来改进正则表达式,以确保数字是独立的(即不在单词或其他数字的中间.

  • @ [Harpyon]有什么遗失的吗?我收到消息"无效组":/(?<= ^ |)\ d +(\.\ d +)?(?= $ |)|(?<= ^ |)\.\ d +(?= $ |) / (5认同)
  • JavaScript显然不支持Lookbehinds。 (2认同)

Ily*_*gan 18

\d*\.\d*
Run Code Online (Sandbox Code Playgroud)

说明:

\ d* - 任意数字的位数

\. - 一个点

\ d* - 更多数字.

这将匹配123.456,.123,123.,但不123

如果你想要点是可选的,在大多数语言中(不知道jquery)你可以使用

\d*\.?\d*
Run Code Online (Sandbox Code Playgroud)

  • `\ D`是"匹配一个数字"的倒数 - 它将匹配除数字之外的任何东西! (2认同)

小智 7

尝试这个

boxValue = boxValue.replace(/[^0-9\.]/g,"");
Run Code Online (Sandbox Code Playgroud)

此正则表达式将只允许文本框的值中包含数字和点。

  • 这将允许多个点,问题是只允许一个点 (7认同)