【问题标题】:how can I check the input is only number and white space in regular expression?如何检查输入只是正则表达式中的数字和空格?
【发布时间】:2010-09-07 08:10:07
【问题描述】:

我有“222 22 222”、“333 33 33 333”、“1234/34”和“ab345 543”,我想检查这些输入是否为数字和空格。即这种情况下,第一个和第二个输入应该使用正则表达式的方法Test返回True,或者使用Exec方法返回自己的值。第三个和第四个应该返回 false。我怎么能在正则表达式中这样做?请帮忙。谢谢你。

【问题讨论】:

  • 您使用什么语言或工具?正则表达式在不同语言中的语法略有不同。
  • 对不起。我使用了 Javascript
  • 您希望" ""1234" 的结果如何。即所有空格和所有数字?
  • 我希望它返回 222 22 222, 333 33 33 333 与我输入的相同。但是第三个和第四个不会返回任何东西或返回 false。

标签: javascript regex numbers


【解决方案1】:

您可以使用这个正则表达式进行测试:

/^[\d\s]+$/

Rubular


如果您还想检查字符串中是否至少有一位数字:

/^\s*\d[\d\s]*$/

【讨论】:

  • ^[\d\s]+$ (因为我认为他不想匹配空字符串)
  • OP 是否也想确保有一些数字或者他们乐于匹配一个完全空白的字符串?他们不清楚。
  • 我添加了一个替代答案,确保至少有一个数字。
【解决方案2】:

您可以使用类似这样的正则表达式:^(?:[0-9]|\s)*$

这是python中的一个测试用例:

test=["222 22 222", "333 33 33 333", "1234/34","ab345 543"]
for i in test:
    m = re.match("^(?:[0-9]|\s)*$", i)
    if (m == None): print("False")
    else: print("True: %s" % m.group())

结果是:

True: 222 22 222
True: 333 33 33 333
False
False

安德烈干杯

【讨论】:

    【解决方案3】:

    我认为它应该类似于 [\d\s{0,1}]

    【讨论】:

    • 这不会匹配重复的字符
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 2012-07-27
    • 2020-01-21
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    相关资源
    最近更新 更多