【问题标题】:Restrict users from entering special characters and numbers限制用户输入特殊字符和数字
【发布时间】:2012-04-24 11:01:35
【问题描述】:

如何限制用户在文本框中输入特殊字符和数字。我只想输入字母(键入/粘贴)。

给我示例 javascript 代码?

【问题讨论】:

  • 如果我是日本人或韩国人,你会屏蔽我吗?如果我合法地使用一个特殊字符作为一个人的名字,你还会阻止我吗?世界上有很多语言,你无法跟踪所有“特殊字符”

标签: php javascript validation


【解决方案1】:

看看这个问题:Function to return only alpha-numeric characters from string?

这就是你所追求的:

$result = preg_replace("/[^a-zA-Z0-9]+/", "", $inputVar);

如果您在此之后将其插入数据库,请务必使用 mysql_real_escape_string() 之类的内容或准备好的语句。

仅依靠 Javascript 进行字符验证是一种非常糟糕的做法,因为 JS 很容易被禁用,并且并非在全球所有设备上都启用。

【讨论】:

  • 一方面,这个问题似乎更有可能是关于 javascript(keyup 事件上的一个验证函数,用于阻止在其中写入),而且你应该知道,这里的人不只是为那些甚至没有尝试过的人做这项工作
  • 最初的问题有点含糊,但很好。我添加了“唯一”这个词。无论哪种方式,他都将“PHP”作为标签包含在内,并且是第一个标签,包括表单验证。我认为涵盖所有方面很重要,而不仅仅是 JS 方面。
  • 你是对的,js验证可以很容易通过(用带有控制台的浏览器编辑,禁用js等)但是php验证是最重要的
  • 投了赞成票,因为您指出了一些有些人忘记的重要事情:js 验证不排除 php 验证
【解决方案2】:

与其阻止某些字符的输入,不如在提交表单时验证值更加用户友好和有效。在此之前,您真的不关心字段的值是什么,并且您不需要对值的输入方式进行特殊处理。它可能是粘贴、拖动、自动输入、通过插件或脚本或其他方法输入的。

一个简单的例子:

</script>

<form onsubmit="return validate(this);">
  <input type="text" name="foo">
  <input type="submit">
</form>

<script type="text/javascript">
function validate(form) {
  var re = /^[a-z,A-Z]+$/i;

  if (!re.test(form.foo.value)) {
    alert('Please enter only letters from a to z');
    return false;
  }
}
</script>

【讨论】:

    【解决方案3】:

    你可以试试这个,我现在正在为我当前的项目使用这个

    $(document).ready(function(){
    
    /* Allow integers only in form input field with id #selector */
    $('#selector').keyup(function () { 
        this.value = this.value.replace(/[^0-9\.]/g,'');
      });   
     })
    

    它也不允许复制粘贴,但缺点是右键然后粘贴

    免责声明:我是从网上找到的

    【讨论】:

    • 不是很好的做法,因为 JavaScript 只能在浏览器中关闭,因此绕过此安全检查。
    猜你喜欢
    • 2018-10-30
    • 2019-08-14
    • 2011-05-10
    • 2021-07-03
    • 1970-01-01
    • 2019-08-19
    • 2019-08-18
    • 2023-03-09
    • 2019-12-15
    相关资源
    最近更新 更多