2010-09-07 35 views
1

我有「222 22 222」,「333 33 33 333」,「1234/34」和「ab345 543」,我想檢查這些輸入是否是數字和空格。在這種情況下,第一個和第二個輸入應該使用正則表達式的方法Test返回True,或者使用Exec方法返回它自己的值。第三和第四個應該返回false。我如何在正則表達式中這樣做?請幫忙。謝謝。如何檢查輸入是否只有正則表達式中的數字和空格?

+0

您使用什麼語言或工具?正則表達式在不同語言中的語法略有不同。 – 2010-09-07 08:13:53

+0

對不起。我用Javascript – Vicheanak 2010-09-07 08:16:45

+1

你會期望什麼結果''''和'「1234」'。即所有的空格和所有數字? – 2010-09-07 08:33:05

回答

7

你可以用正則表達式進行測試:

/^[\d\s]+$/ 

Rubular


如果你還需要檢查有字符串中的至少一個數字:

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

^[\ d \ s] + $(因爲我認爲他不想匹配空字符串) – dweeves 2010-09-07 08:16:10

+0

+1爲Rubular測試鏈接 – Johnsyweb 2010-09-07 08:19:33

+0

@dweeves:是的,您可能是對的。我已經更新了答案。 – 2010-09-07 08:24:27

-1

我認爲它應該像[\ d \ s {0,1}]

+0

這將不匹配重複的字符 – 2010-09-07 08:31:35

1

您可以使用這樣的正則表達式:^(:[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()) 

的resut是:

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

乾杯安德烈

相關問題