2017-09-26 155 views
-5

我在c#中使用正則表達式驗證字段(非空或空白),意味着字段必須包含一些值甚至單個字符。 我必須使用REGEX其由於某些原因是強制性的。 我正則表達式是正則表達式不檢測字段爲空或有空白空間

^[A-ZA-Z0-9] + $

+0

regex無法檢測*空*。如果你的意思是必須至少有一個非空格,使用'@「\ S」'或 - 如果你需要匹配整個字符串,可以使用'^ \ s * \ S。* $'或'^ \ s * \ S [\ s \ S] * $'或'(?s)^ \ s * \ S。* $'。請澄清你在做什麼。 –

+0

爲什麼不使用'string.IsNullOrWhiteSpace(string s)'? –

+0

我必須使用正則表達式。 –

回答

0

這是你應該如何檢查是它的空,空或空白

var str = ""; 
if (!string.IsNullOrWhiteSpace(str) || !string.IsNullOrEmpty(str)) 
{ 
    // then do something here 
} 
+1

請檢查[文檔](https://msdn.microsoft.com/en-us/library/system.string.isnullorwhitespace(v = vs.110).aspx) - *「如果value參數爲**,則爲true null **或** String.Empty **,或者如果值僅包含**空白字符**。「*。 'IsNullOrEmpty'是多餘的。 –

+0

我只是看着你的例子,認爲它比我給出的更優雅。我通常只使用'IsNullOrEmpty'並且很少考慮'IsNullOrWhiteSpace',這就是爲什麼我在它上面標記upvote的原因。 –

1

有是string.IsNullOrWhiteSpace的擴展方法。你想達到什麼或多或少正是它所做的。請參閱here

例子:

string.IsNullOrWhiteSpace(string.Empty); // returns true 
string.IsNullOrWhiteSpace(null); // returns true 
string.IsNullOrWhiteSpace(" "); // returns true 
string.IsNullOrWhiteSpace("ABC"); // returns false