函数体后面的JavaScript SyntaxError:missing}

时间:2016-07-14 08:15:04

标签: javascript regex

所以......我对自己的发布并不感到骄傲,但我真的被困了。我有一个表单,我只想在JavaScript中验证,然后将其传递给控制器​​。结果我得到Missing }错误,我不知道为什么。

这是HTML:

<form id='contact_form' method='POST' name='contactform'>
<p>First Name: <input name='first_name' type='text' /></p><br/>
<p>Last Name: <input name='last_name' type='text' /></p><br/>
<p>Company: <input name='company' type='text' /></p><br/>
<p>Email Address: <input name='email' type='text' /></p><br/>
<p>Phone: <input name='phone' type='text' /></p><br/>
<p>Address: <input name='address' type='text' /></p><br/>
<p>Message:<textarea name='message'></textarea></p><br/>
<a id='submit'>Submit here</a>
</form>

这是JavaScript:

<script>
    $('#products').on("click", "#submit", function () {

        $('input').removeClass('error');
        $('textarea').removeClass('error');
        var isValid = true;

        // verifica nume si prenume
        var firstNameReg = new RegExp(/^[^\d]{3,}$/);
        if (!firstNameReg.test($('input[name=first_name]').val())) {
            $('input[name=first_name]').addClass('error');
            isValid = false;
        }

        var lastNameReg = new RegExp(/^[^\d]{3,}$/);
        if (!lastNameReg.test($('input[name=last_name]').val())) {
            $('input[name=last_name]').addClass('error');
            isValid = false;
        }

        // verifica telefon
        var telReg = new RegExp(/^[\d]{10}$/);
        if (!telReg.test($('input[name=phone]').val())) {
            $('input[name=phone]').addClass('error');
            isValid = false;
        }

        // verifica email
        var emailReg = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
        if (!emailReg.test($('input[name=email]').val())) {
            $('input[name=email]').addClass('error');
            isValid = false;
        }

        if (isValid) {
            alert("Formularul este completat corect!");
        }
    });
</script>


所以......如果您有任何想法,请给我一个提示!谢谢!

1 个答案:

答案 0 :(得分:0)

这不是答案,只是改进验证

我无法确定是什么原因造成你的花括号问题,如果以下代码不起作用,它可能位于另一个文件中,请将您的完整项目上传到某处,以便我可以进一步调查。 我重写了你的验证码并将其缩短了一点(因为你并不为此感到自豪)

$('#contact_form').on('click', '#submit', function() {
    var validations = {
        first_name: new RegExp(/^[^\d]{3,}$/),
        last_name: new RegExp(/^[^\d]{3,}$/),
        phone: new RegExp(/^[\d]{10}$/),
        email: new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i)
    }

    $('input, textarea').removeClass('error');

    for (var key in validations)
        if (!validations[key].test(contactform[key].value))
            $(contactform[key]).addClass('error');

    if (!$('#contact_form .error').length)
        alert("Formularul este completat corect!");
});