【问题标题】:Regex expression for empty string that accept number with 1 place decimal?接受小数点后 1 位数字的空字符串的正则表达式?
【发布时间】:2017-10-11 11:59:27
【问题描述】:

我想要一个接受数字为 1 的空字符串的正则表达式 小数点后

接受值

[blank space]
1.1
2.1
3.1
22
12
0
empty string

不接受

q.q
1q
.0
.00

试过

^[0-9]+(\.[0-9]{1,1})?$

但不建议留白

【问题讨论】:

  • 你的意思是那个数字还是一个空格?试试^( |[0-9]+(\.[0-9])?)?$
  • 你需要做什么?请澄清问题。
  • 它也应该接受空字符串
  • regex101.com/r/VHRQiP/2(来自顶部评论的链接)显示它接受一个空字符串。你是如何使用正则表达式的?请出示代码。
  • 我相信当前的问题与正则表达式无关。您必须在某些环境中使用它,在输入到正则表达式引擎或使用其他一些条件之前过滤输入。例如。 HTML 输入中的“必需”属性。

标签: regex


【解决方案1】:

试试这个正则表达式:

^(?: |[0-9]+(\.[0-9])?)?$

您可以使用交替匹配单个空格,或匹配整数或小数点后最多一位数的数字模式。请注意,空字符串也是有效输入,因为整个模式的格式为^(...)?$,它不允许输入。我删除了{1,1},因为[0-9] 隐含地表示只有一个数字。

Demo

【讨论】:

  • @DeepakJain “空格”是什么意思,还是一个空格?对于没有输入,我认为您应该在应用层中处理它。
  • @L3viathan 我不知道这个,感谢编辑:-)
【解决方案2】:

试试这个

^( |[0-9]+(\.[0-9])?)?$

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多