作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 3 个文本框(日、月、年),我想检查输入是否是例如day 必须从 1 到 31,依此类推。
我的代码是:
If InputDan.Text < "1" Or InputDan > "31" Then Warning.Text = "Not a valid day input." Else Warning.Text = ""
此外,我的日和月输入限制为 2 个字符,年份输入限制为 4 个字符。它适用于 10 到 31 之间的数字,并且当输入为 0 或 32 等时,它会正确地发出警告消息。
问题来了...
当我输入 4 到 9 的数字时,它会显示一条警告消息,后来我发现程序将输入一个字符后的空格视为 0。因此,如果我输入 4,程序会将其读取为 40,依此类推。
我可以通过将 String 输入转换为 Int 来解决这个问题吗?
最佳答案
您需要先将数字解析为整数,然后才能比较它们,否则 >"11"
将按字母顺序比较它们,而不是按数字顺序。
Dim day As Integer
Dim valid As Boolean = Int32.TryParse(InputDan.Text, day)
现在您知道该输入的数字是否正确,如果不正确,您可以显示警告。
我建议采用不同的方法来检查输入是否是正确的日期,因为您必须考虑该月的天数(还有闰年、不同的日历等)。所以使用当前的culture's calendar并以这种方式查看给定月份的天数是否正确:
Dim daysInMonth = CultureInfo.CurrentCulture.Calendar.GetDaysInMonth(year, month)
If day > daysInMonth OrElse day < 1 Then
' show warning '
End If
(假设您已经使用 Int32.TryParse
检查了年份和月份部分)
关于vb.net - 如何在 Visual Basic 中将文本框中的字符串检查为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13413142/
我是一名优秀的程序员,十分优秀!