检查字符串仅包含字符

时间:2016-06-02 12:44:33

标签: c# .net wpf

我知道之前已经问过,但我的代码没有工作。

Senario是我需要检查字符串是否只包含字母,数字和空格。如果它包含任何其他东西,我需要失败。

我已尝试过RegEx方法,但我不了解正则表达式,所以我需要使用LINQ方法进行评估。

这是我的代码:

if (!CSVItemArray[count].All(Char.IsLetterOrDigit) && !CSVItemArray[count].Contains(" "))
{
    return false;
}

3 个答案:

答案 0 :(得分:3)

只需检查.content查询中的字母,数字或空格检查:

height:100%

答案 1 :(得分:2)

你的逻辑有点困惑。如果true中的字符串仅包含字母,数字和空格,则以下内容返回CSVItemArray[count]

return CSVItemArray[count].All(c => Char.IsLetterOrDigit(c) || Char.IsWhiteSpace(c));

答案 2 :(得分:1)

做某事(例如使用正则表达式)因为不了解它是件坏事 - 至少对于开发人员而言。特别是如果你想要做的事情可以通过使用正则表达式轻松实现。

话虽如此,你可以简单地使用它:

Regex r = new Regex("^[A-Za-z0-9\\s]*$");
var valid = r.IsMatch(myString);

这将查找任意数量的大写或小写字符,数字和空格字符。序列本身被[]包含,以下*设置序列在字符串中出现的次数(在您的情况下,无uo到无限次)。 ^$仅用于以字符为单位标记字符串的开头和结尾。这样可以避免%asdfgh12345 //匹配。

编辑:如果你也需要变形金刚(ä,ö,ü,ß,......),你也可以查看处理特殊字符的this post