Don';t允许使用“@";在文本区域


Don't allow the use of "@" on textarea

我想知道如何阻止而不允许在文本区域上使用"@"的ussage;如果他们介绍它,就会给他们一个警告。

如果我想阻止8位数字到,是一样的吗?

谢谢!

要无法键入'@'字符,您需要实现如下代码:

<textarea class="area"> </textarea>
<script>
$('.area').keypress(function(event){
  if ( event.which == 64 ) {
    event.preventDefault();
  }
});
</script>

此实现的主键是event.preventDefault();,用于放弃按键触发的事件。

64是与"@"相关的ASCII码

如果你想限制键入的字符数为8,那么<input type="text">似乎更适合你。

您可以使用这样的代码,它可以阻止用户尝试用于输入@符号的许多类型的输入:

var text = document.getElementById('txt');
text.onkeypress = function(e){
    if(e.which === 64)
    {
        e.preventDefault();
        return false;
    }
};
text.onkeydown = function(e){
   if(e.ctrlKey==true && (e.which == '118' || e.which == '86'))
   {
       e.preventDefault();
       return false;
   }
};
text.oncontextmenu = function(e){
    e.preventDefault();
    return false;
};
text.ondrop = function(){return false; };

jsFiddle此处

上下文菜单部分与早期的IE不兼容。

注意:这只是一种预防措施,我绝对建议您也在后端验证此输入,因为很明显,有些人只需修改前端页面,就可以提交他们想要的任何内容。

要阻止8位数字,您必须在onsubmit处理程序中使用regex函数来检查字段是否包含8位数字。

您应该防止在前端和后端使用。

在php中,您可以很容易地使用strpos()检查是否存在@符号。您也可以将以下相同的regex与preg_match()一起使用

更新:显然HTML5文本区域不支持模式属性,这对我来说很奇怪。所以这个前端解决方案不适用于文本区域,只适用于输入。

对于HTML5,您可以使用pattern属性来指定您想要的regex。现在几乎所有浏览器都支持这一点。

相关文章: