一种方法是限制用户仅输入某些字符或不允许键入某些字符。例如,您可以在文本控件中启用或禁用某些键,例如
// check for only upper, lower char with [space]
function onlyAlpha(e, t) {
if (navigator.appName == "Microsoft Internet Explorer") {
var n = event.keyCode;
if (n > 64 && n < 91 || n > 96 && n < 123 || n == 32) {
return true
} else {}
} else {
var n = t.charCode;
if (n > 64 && n < 91 || n > 96 && n < 123 || n == 32 || n == 0) {
return true
} else {}
}
return false
}
只允许字母数字
// check for upper, lower, [space], [,], [.] and numerals
function onlyAlphaNumeric(e, t) {
if (navigator.appName == "Microsoft Internet Explorer") {
var n = event.keyCode;
if (n > 64 && n < 91 || n > 96 && n < 123 || n == 32 || n == 46 || n == 39 || n >= 48 && n <= 57) {
return true
} else {}
} else {
var n = t.charCode;
if (n > 64 && n < 91 || n > 96 && n < 123 || n == 0 || n == 32 || n == 46 || n == 39 || n >= 48 && n <= 57) {
return true
} else {}
}
return false
}
你可以把它们当作
<asp:TextBox ID="txtText1" runat="server" onkeypress="return onlyAlpha(this,event);" MaxLength="30" />
<asp:TextBox ID="txtText2" runat="server" onkeypress="return onlyAlphaNumeric(this,event);" MaxLength="30" />
使用这些功能,您可以允许/禁止用户填写某些字符。您需要在这里处理的一个问题是捕获 ctrl+v。你可以找到很多 SO 帖子来处理这个问题。
如果您方便使用 regexes,您可以从这些 SO 帖子 javascript only allow alphanumeric and hyphen - value in text field 和 REGEX (javascript) - Allow alphanumeric characters with special characters not in the first position 中获取提示
为了防止表单提交,更好的方法是使用一些客户端 JavaScript 库/jQuery 插件。有很多可用的。
为了安全起见,最好使用正则表达式或自定义检查对输入应用服务器端验证,例如
If txtText1.Text.Contains("#") OrElse txtText2.Contains("<") Then
'take action
End If