2017-07-18 49 views
0

我有一个列表,比如说unknownChars,其中包含许多字符串“未知”,“TBC”,“TBA”等,这些都是用户验证所需的。如何从列表中删除空白,不需要的字符以比较字符串值c#

我需要检查输入的字符串是否存在于我的列表中,但是我需要了解所有可能性,例如套管,以及额外字符(如'UUknown')和特殊字符(如N/A)。我假设我需要首先对输入进行标准化,以消除任何白色空格和其他错误输入的字符,然后处理输入以查看是否匹配字符串。

public bool useUnkownPack(string strTest) 
{ 
    List<string> unkownChars = new List<string> {'Unknown', 'TBC', 'TBA', "N/A"} 
    if(unkown.Contains(strTest, StringComparer.OrdinalIgnorcase)) 
    { 
     return false; 
    } 
    return true; 
} 

因此,如果有人能在正确的方向指向我如何normilise输入任何任何想要的字符之前,我相匹配的,我将非常感激

+0

如果您只想检测一个或多个多字符串是否存在一个字符串,使用不区分大小写的正则表达式,比如'[未知| TBC | TBA | N/a]'并返回输入是否匹配正则表达式? – CodeCaster

+0

@Am_I_Helpful这是一个多赢形式的应用程序,其中包含三种形式,用户将不得不用他们的infomaton。我的iuuse是o它将通过验证,如果空格在输入的单词之前。如果存在任何特殊字符,我还需要obool返回false –

回答

0

确保您的项目列表中有所有的标准化,只有字符的值。然后使用正则表达式来删除任何非alpha字符。

Regex rgx = new Regex("[^a-zA-Z]"); 
Console.WriteLine(useUnkownPack(rgx.Replace(inputValue, ""))); 

.... 

public static bool useUnkownPack(string strTest) 
{ 
    List<string> unkownChars = new List<string> {"Unknown", "TBC", "TBA", "NA"}; 

    if(unkownChars.Contains(strTest, StringComparer.OrdinalIgnoreCase)) 
    { 
     return false; 
    } 

    return true; 
} 

活生生的例子:http://rextester.com/QFCW63817

+0

为您的响应欢呼,我应该在所有验证事件中还是在useKownPack函数中使用创建的正则表达式? –

+0

@ dave.2要公平,而且与我的例子不同,你应该在你的方法中进行一次。 – Jamiec