2012-04-12 102 views
1

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

给我示例javascript代码?

+0

所以如果我是日本人,或者是Kor恩,你会阻止我吗?如果我合法地使用了一个特殊字符作为一个人的名字,你还会阻挡我吗?世界上有很多语言,你***不能跟踪所有*“特殊字符”*。 – Joseph 2012-04-12 05:25:05

+0

可能重复的[我应该从名称中筛选出奇怪的字符](http://stackoverflow.com/questions/8831700/should-i-screen-out-odd-characters-from-names) – Joseph 2012-04-12 05:37:31

回答

1

而不是阻止某些字符的输入,它是更方便用户和有效的验证表单提交时的值。你真的不在意这个领域的价值是什么,你不需要特殊的处理来输入价值。它可能被粘贴,拖动,自动输入,通过插件或脚本或其他方法输入。

一个简单的例子:

</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> 
2

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

这是你后:

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

如果要插入到这一点后,该数据库时,一定要使用像mysql_real_escape_string()或准备好的陈述。

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

+0

有一件事问题似乎更有可能是关于JavaScript(关键事件中的验证函数以阻止写入),并且您应该知道,这里的人不仅仅为其他人甚至没有尝试过的东西做这项工作 – mishu 2012-04-12 05:31:16

+0

原来的问题有点含糊,但很好。我添加了“完全”一词。无论哪种方式,他都将“PHP”作为标签,并将其包含在内,包括表单验证。我认为覆盖所有方面而不仅仅是JS是很重要的。 – tcole 2012-04-12 05:32:58

+0

你是对的,js验证可以很容易地通过(用控制台编辑浏览器,禁用js等),但php验证是最重要的 – mishu 2012-04-12 05:35:13

1

你可以试试这个,我现在用这个适合我目前的项目

$(document).ready(function(){ 

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

它也不允许复制粘贴,但弱点是右键点击粘贴

声明:我刚刚从网上找到它

+1

由于JavaScript只能在浏览器中关闭,因此不采用此安全检查,因此不是很好的做法。 – ryansin 2017-03-01 17:00:53