如何限制在文本框中输入的任何特殊字符
本文关键字:输入 任何 特殊字符 何限制 文本 | 更新日期: 2023-09-27 17:55:25
如何限制在文本框中输入的任何特殊字符?我有一个文本框,用户可以在其中输入文本框以验证数据库中是否存在该 url。在我点击数据库之前,我想确保文本框中没有输入特殊字符
例如,如果某些用户尝试输入以下内容: )(*&<>&*^&*^&*$%#!@#$http://www.cnn.com!@#$%^&*()
他们粘贴或键入带有特殊字符的 url 之前,我怎么能不允许在文本框中出现?
对此的唯一期望是:如果&
(&符号)位于 url 之间,则允许如下所示:
http://cnn.com/news/latest.html&id=1
使用文本框的KeyPress
事件。在处理程序中,针对e.KeyChar
运行要验证的正则表达式,如果找到无效字符,请将e.Handled
设置为 true
。这将阻止在框中输入字符。
如果要测试整个文本,可以连接新字符和当前Text
属性,并针对该属性运行表达式。
或者,在需要验证时,使用 Validating
事件测试整个输入。
编辑:为了响应garykindel发布的链接,KeyPress
将是比TextChanged
或MaskedTextBox更好的选择,因为前者在撤消更改之前触发事件,并且弄乱用户的输入位置,并且MaskedTextBox对于黑名单字符之类的东西太严格了。
最简单的答案是制作一种方法来去除客户端的字符。
$('#myTextBox').keyup(function()
{
var santizedValue = '';
for(var j = 0; j < this.value.length; j++)
if(this.value[j].toLower() == 'a' || this.value[j].toLower() == 'b' ... )
sanitizedValue += this.value[j];
//Alternatively; convert the character to integer and check the ASCII range for a-z + &
this.value = sanitizedValue;
});
你在服务器上创建了一个类似的方法(以防客户端没有javascript或破坏脚本)。