汉字禁止

时间:2012-02-20 13:49:09

标签: php

我有一个网络表单,我希望用户在填写表单时不要在textarea中包含任何中文单引号/双引号,我该怎么办?

3 个答案:

答案 0 :(得分:0)

为防止用户输入表单元素,您必须使用客户端脚本(即JavaScript)。

简单的方法是处理onkeypress事件:

<textarea onkeypress="return CheckKey(event);"></textarea>​

有这样的代码:

var arrForbiddenCodes = [97, 98, 99];
function CheckKey(event) {
    var keyCode = event.keyCode || event.which;
    for (var i = 0; i < arrForbiddenCodes.length; i++) {
        if (arrForbiddenCodes[i] === keyCode)
            return false;
    }
    return true;
}​

这将根据键码阻止字符 - 在上面的代码中,小写的“a”,“b”和“c”字母将被阻止。要查找特定字符的关键代码,请将alert(keyCode);添加到函数中,然后在textarea中键入该字符。

Live test case

答案 1 :(得分:0)

你可以添加一些使用正则表达式的javascript来限制条目为alpha或alpha和numeric(或任何你想要的其他字符)。

<script language="javascript">
function blockChar()
{
    var str = document.getElementById('txt').value;
    if(str.match(^[a-zA-Z0-9]*$)) {
        return true;
    }
    else {
        return false;
    }
}
</script>

答案 2 :(得分:0)

您可以获取表单内容并根据不接受的字符列表进行检查:

$formContent = $_GET["formcontent"];
$badCharacters = array("'", "‘", "“");
$cleanResult = str_replace($badCharacters, "", $formContent);

坏字符数组有你不喜欢的引号(如果它们是你需要转义它们的标准引号),那么str_replace函数会遍历表单数据,用空字符串替换每一个。当然,你应该在此之前做适当的逃避和安全。