带有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
错了吗?