C# C文本框,最多允许一个点
我如何在C中创建一个允许最多一个的。圆点 因此,abcdef和abc.def将是有效的输入,而ab.cd.ef则不是 允许我的意思是,如果文本字段中已经有一个点,那么用户就不能输入一个点C# C文本框,最多允许一个点,c#,textbox,C#,Textbox,我如何在C中创建一个允许最多一个的。圆点 因此,abcdef和abc.def将是有效的输入,而ab.cd.ef则不是 允许我的意思是,如果文本字段中已经有一个点,那么用户就不能输入一个点 Java有文档过滤器用于此目的,C中是否有类似的东西?我想这是用于验证用户输入。你应该创建一个按钮,告诉用户当他完成时,按下它,这样你就可以检查是否只有一个。在字符串中 假设: 将文本框命名为tb。让您的按钮单击事件处理程序为BtnOnClick 现在我们可以开始编写代码了。首先创建处理程序: private
Java有文档过滤器用于此目的,C中是否有类似的东西?我想这是用于验证用户输入。你应该创建一个按钮,告诉用户当他完成时,按下它,这样你就可以检查是否只有一个。在字符串中 假设: 将文本框命名为tb。让您的按钮单击事件处理程序为BtnOnClick 现在我们可以开始编写代码了。首先创建处理程序:
private void BtnOnClick (object sender, EventArgs e) {
}
在处理程序中,需要循环遍历字符串并检查每个字符。您可以使用foreach进行以下操作:
int dotCount = 0;
string s = tb.Text;
if (s.StartsWith(".")) //starts with .
//code to handle invalid input
return;
if (s.EndsWith(".")) //ends with .
//code to handle invalid input
return;
foreach (char c in s) {
if (c == '.') {
dotCount++;
}
if (dotCount >= 2) { //more than two .
//code to handle invalid input
return;
}
}
// if input is valid, this will execute
或者,可以使用查询表达式。但我认为你不太可能知道那是什么
string s = tb.Text;
if (s.StartsWith(".")) //starts with .
//code to handle invalid input
return;
if (s.EndsWith(".")) //ends with .
//code to handle invalid input
return;
var query = from character in s
where character == '.'
select character;
if (query.Count() > 1) {
//code to handle invalid input
return;
}
// if input is valid, this will execute
是的,有几种方法可以使用regex、foreach和string方法,但到目前为止,您尝试了哪些方法?您是否正在尝试找到验证电子邮件的方法?因为这是一种非常粗糙的方法,既不健壮也不友好。@JGreenwell你能给我指一种方法吗?@Claies不,不是电子邮件我知道@Scriptim您必须验证一个浮点数!是的,那是个打字错误。我纠正了它@安德烈莫尔顿