JavaScript代码不起作用

时间:2014-10-13 10:10:50

标签: javascript html

我正在尝试使用JavaScript检测文本字段中的空格,因此每当文本字段中有空格时,都会弹出一个警告,但此代码不起作用,它应该适用于两个文本字段。

<!DOCTYPE html>
<html>
    <script type="text/javascript">
        function detectSpace() {
            $returnValue = preg_match('/[^a-z^A-Z^0-9]/', $str, $matches);
            if ($returnValue==1) 
            {
                alert("spaces & symbols are not allowed");
            }
        }
    </script>
    <body onload="detectSpace()">

        <form action="demo_form.asp">
            First name: <input type="text" name="FirstName" value=""><br>
            Last name: <input type="text" name="LastName" value=""><br>
            <input type="submit" value="Submit">
        </form>

        <p>Click the "Submit" button and the form-data will be sent to a page on the server called "demo_form.asp".</p>

    </body>
</html>

1 个答案:

答案 0 :(得分:4)

preg_match是一个PHP函数而不是JavaScript函数 - 由于你的后端代码是ASP,这个函数更加模糊! PHP和JavaScript是不同的语言。要匹配JavaScript中的字符串,您需要将代码更改为:

function detectSpace(str) {
    var expression = new RegExp(/\s/);
    var returnValue = expression.test(str);

    if (returnValue === true)
        alert("spaces & symbols are not allowed");
}

有了这个,您需要在detectSpace函数中传入要测试的值作为参数:

detectSpace("foo");        // No alert fired
detectSpace("foo bar");    // Alert fired

请注意,我还将您的正则表达式更改为/\s/ - 这与空格匹配,如果找到任何空格,则会返回true