2014-12-02 122 views
1

我發現的東西,應該回答我的問題:正則表達式不應該匹配空或空白

Regular Expression Validation error does not show up on entering a whitespace

然而,答案並沒有爲我工作。我試圖找到非零,正數或負數的整數。我用:

^-?[1-9][0-9]* 

它工作正常,除了空或空白。我試過了:

^-?[1-9][0-9]*\ {0,0}$ 

這沒有奏效。有任何想法嗎?

+0

我試過這樣:^ [+ - ] [1-9] [0- 9] * $ 這沒有奏效。前面(或後面,我認爲這是)測試似乎測試數字0不是一個數字。這似乎並沒有解決我的問題。我想知道,這可能是因爲這是asp.net RegularExpressionValidation控件的一部分嗎? – 2014-12-02 15:48:28

+0

我嘗試了一種替代方法。我把兩個驗證服務器控件放在文本框中。 RequiredFieldValidator和RegularExpressionValidator,兩者都使用Display = Dynamic。這裏的問題是隻有第一個顯示。如果我先將RequiredField放入,它會在適當時顯示錯誤消息。但RegEx從不顯示。反之亦然。現在,我不知道我該走哪條路。是否可能RegularExpressionValidators從不測試null,即使你說,所以RequiredFieldValidator有一個目的?聽起來比計算機科學更哲學... – 2014-12-02 15:58:57

+0

我試過了最基本的正則表達式,我可以想象檢查以確保沒有空白或空:^ \ S + $這從來沒有工作。我開始認爲RegularExpressionValidator不會讓我檢查空格或空值。這是該死的怪異。 – 2014-12-02 16:17:11

回答

1
^[+-]?(?!0$)\d+$ 

您可以試試這個。 ?!爲負先行測試如果字符串不爲0

http://regex101.com/r/yR3mM3/18

+0

經過一個更多的編輯你的答案將成爲我的相同:) – anubhava 2014-12-02 15:32:18

+0

@anubhava沒有它不會。只是沒有讀取整數和其他stuff.this採用消極lookahead在哪裏作爲你的不。 – vks 2014-12-02 15:35:43

1

使用使用錨$這裏:

^[+-]?[1-9][0-9]*$ 

即:

  • ^ - 行啓動
  • [+-]? - 可選+-
  • [1-9] - 數介於1至9
  • [0-9]* - 0以上digist
  • $ - 輸入