【发布时间】:2013-07-24 16:39:55
【问题描述】:
这是我到目前为止所拥有的,但我在任何地方都找不到代码说我只想包含字母和数字。我不熟悉正则表达式。现在,即使我包含“#”,我的代码也会忽略 while 循环。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void okBtn_Click(object sender, EventArgs e)
{
if(textBox1.Text.Contains(@"^[^\W_]*$"))
{
fm1.txtFileName = textBox1.Text;
this.Close();
}
else
{
MessageBox.Show("Filename cannot include illegal characters.");
}
}
}
【问题讨论】:
-
在
button_click处理程序中使用while 循环会使您的应用程序无限显示消息。使用if语句并在满足条件时简单地返回。至于条件本身,请参阅下面的答案。 -
字母和数字用什么正字法?例如,希腊语中的字母是否被视为字母?文件名中合法的符号怎么样,比如“。” ?
-
@EricLippert 我想我现在就让它保持简单,所以只有键盘上的 26 个字母和 10 个数字。
-
没有“the”键盘之类的东西;你的意思是在你的键盘上。其他人的键盘上有不同的字母。我注意到,如果您只想要 a-z 和 0-9,那么接受的答案是错误的;
IsLetterOrDigit接受任何正字法中的字母和数字。 -
啊,对。谢谢你。我意识到无论如何我都使用了 char 数组答案,查看字符串中的任何字符是否与 GetInvalidPathChars 中的任何字符匹配
标签: c# regex string validation