带有PHP数据的Javascript电子邮件验证特定域

带有PHP数据的Javascript电子邮件验证特定域,javascript,php,Javascript,Php,这行有点不对劲: var reg = /^[a-z.]+'@'+javaScriptVar$/; 但是我不知道如何正确地写这个。当前代码将使“请输入电子邮件地址”每次都出现。代码如下: <? $em=$_POST['myemail']; $ar=split("@",$em); ?> function validateForm() { var x=document.forms["myForm"]["username"].value; if (x==null || x

这行有点不对劲:

var reg = /^[a-z.]+'@'+javaScriptVar$/;
但是我不知道如何正确地写这个。当前代码将使“请输入电子邮件地址”每次都出现。代码如下:

<?
$em=$_POST['myemail'];
$ar=split("@",$em);
?>

function validateForm()
{
    var x=document.forms["myForm"]["username"].value;
    if (x==null || x=="")
    {
        alert("User Name must be filled out");
        return false;
    }

    if (document.forms["myForm"]["email"].value.length == 0) {
        alert("Please enter Email Address");    
        return false;
    } else {
        var javaScriptVar = "<?php echo $ar[1]; ?>";
        var reg = /^[a-z.]+'@'+javaScriptVar$/;  
        if (!reg.test(document.forms["myForm"]["email"].value)) {
            alert("Please Enter Correct Email Domain"); 
            return false;
        }
    }

}

函数validateForm()
{
var x=document.forms[“myForm”][“username”].value;
如果(x==null | | x==“”)
{
警报(“必须填写用户名”);
返回false;
}
if(document.forms[“myForm”][“email”].value.length==0){
警报(“请输入电子邮件地址”);
返回false;
}否则{
var javaScriptVar=“”;
var reg=/^[a-z.]+'@'+javaScriptVar$/;
if(!reg.test(document.forms[“myForm”][“email”].value)){
警报(“请输入正确的电子邮件域”);
返回false;
}
}
}

您似乎试图在正则表达式中包含一个
@
,以检查url验证。因为在正则表达式周围没有引号,所以像
+'@'+
这样指定它是行不通的

将其更改为:

/^[a-z.]@javaScriptVar$/

编辑:

我认为您使用了错误的正则表达式来验证
url
。试试这个:


/^[a-zA-Z0-9]+[@][a-zA-Z0-9]+.{1}[a-z]{3}$/

您能为javascriptVar发布解释值吗(您在浏览器中看到的是什么而不是代码)?以
/…/
的形式编写正则表达式是一种特殊的语法(注意,没有引号,所以它不是正常的字符串文字),所以我认为你不能在那里使用普通的字符串连接。我认为您必须使用
newregexp(…)
语法来动态创建正则表达式。您在执行时是否遇到错误?你能举个例子吗?我得到“请输入正确的电子邮件域”,即使我输入了正确的域,我只是尝试了var javaScriptVar=“test.com”;看看这是否是我的php问题,但我仍然收到相同的警报,因此我认为应该仍然是/^[a-z.]@javaScriptVar$/问题。谢谢。var javaScriptVar=”test@test.com"; 然后我试着abc@test.com,它将显示“请输入正确的电子邮件域”警报。
test@test.com
正确且
abc@test.com
错了吗?