Javascript和PHP正则表达式验证


Javascript and PHP regex validation

我正在我的网站上制作一个表单,但我的2个正则表达式有问题。(我有一个PHP正则表达式和一个JS正则表达式,因为我读到只有javascript是危险的)

第一个是在PHP

$name = mysql_real_escape_string($_POST['name']);
                    if(strlen($name) < 2 || strlen($name) > 20 || preg_match('#[0-9]#',$name))
                    {   
                        echo '<p class="center"> je naam: <b> '.$name.' </b>  bevat cijfers en/of mag niet korter zijn dan 2 tekens en niet langer zijn dan 20 tekens. </p>';                   
                        echo '<p class="center"> <a href="javascript:history.go(-1);">Ga terug</a></p> ';
                    }

如果名称中有数字,则此pregmatch给定是错误的。问题是我不希望人们有还有那个名字里的东西。

正确的正则表达式是什么。

接下来是Javascript

function checkform ( form )
    {
        if (form.name.value == "") 
        {
            alert( "Please enter your name." );
            form.name.focus();
            return false ;
        }
        if (form.email.value == "")
        {
            alert( "Please enter your email address." );
            form.email.focus();
            return false ;
        }
        return true ;
    }

在这里,我想要同样的东西,并验证它检查空度和长度,而不是#$^&!

对于电子邮件验证,我需要另一个正则表达式,但我稍后会搜索它。

问候Jochem

如果您看到错误,请进行编辑。

编辑:

var re和var regex是我找到的电子邮件regex。但是他们为什么不工作,因为我不太好,有人用脏话给了我一个很好的答案

function checkform ( form )
    {
        var rex = /[^a-z]/i;
        var regex = /^([a-zA-Z0-9_'.'-])+'@(([a-zA-Z0-9'-])+'.)+([a-zA-Z0-9]{2,4})+$/;
        var re = /^(([^<>()[']''.,;:'s@'"]+('.[^<>()[']''.,;:'s@'"]+)*)|('".+'"))@(('[[0-9]{1,3}'.[0-9]{1,3}'.[0-9]{1,3}'.[0-9]{1,3}'])|(([a-zA-Z'-0-9]+'.)+[a-zA-Z]{2,}))$/;
        if (regex.test(form.email.value))
        {
            alert( "Please enter your email address." );
            form.email.focus();
            return false ;
        }
        if (rex.test(form.name.value)) 
        {
            alert( "Please enter your name. no numbers or #$^& things allowed)." );
            form.name.focus();
            return false ;
        }
        return true ;
    }

如果您只想接受字母,请使用/[^a-z]/i。您可以在PHP和JavaScript中使用此正则表达式。