脚本不允许输入框中的某些字符

时间:2012-10-15 12:20:27

标签: javascript asp.net

我正在使用此脚本禁止用户将| < > / \ : * ? \ " ^插入到aspx c#网站上表单的输入框中。但是这仅适用于IE或Chrome。我想知道是否有人能够提供有关为什么它不能在Firefox中工作的见解?

<script type="text/jscript">

    $('input').bind('keypress', function(event) {
        var regex = new RegExp("[|<>/\\\\:*?\"^]");
        var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
        if (!regex.test(key) == false) {
            event.preventDefault();
            alert("Seach cannot contain the following characters: \n \\ / : * ? \" < > |");
            return false;
        }
    });
</script>

2 个答案:

答案 0 :(得分:2)

它不起作用,因为你已经错误地声明了它。

更改此

<script type="text/jscript">

正确:

<script type="text/javascript">

或者您可以完全省略该类型,因为JavaScript是默认类型:

<script>

答案 1 :(得分:1)

根据 scunliffe 发布的内容,这可能不是您想要的:

if (!regex.test(key) == false)
  --^--                 --^--

你否定了两次。也许你想要这个:

if (!regex.test(key))

这更有意义。 test是假的,因此无需与bool进行比较。