Javascript 名称、电子邮件验证

Javascript 名称、电子邮件验证,javascript,jquery,regex,validation,html-validation,Javascript,Jquery,Regex,Validation,Html Validation,我正在寻找验证 我希望用户名只有A-Z,A-Z,并且必须有下划线。,电子邮件应该有@。我如何使用jQuery实现它 表格(示例): <html> <head> <title>TEST</title> </head> <body> <form action="..." method="POST" onSubmit="return Check()" > <input type="text" id="name"

我正在寻找验证

我希望用户名只有
A-Z
A-Z
,并且必须有下划线
,电子邮件应该有
@
。我如何使用jQuery实现它

表格(示例):

<html>
<head>
<title>TEST</title>
</head>
<body>
<form action="..." method="POST" onSubmit="return Check()" >
<input type="text" id="name" placeholder="Please enter your Name. (Must have underscore)" required>
<input type="text" id="email" placeholder="E-Mail">
<input type="submit" value="submit">
</form>
</body>
</html>

试验

编辑我尝试过:

<script type="text/javascript">
    jQuery(document).ready(function($){
        $('[name="submit"]').click(function(e){
        var name = document.getElementById("name").value;
        if(re = /[a-zA-Z]*_[a-zA-Z]*/;) {
            $(".name").addClass("error");
            return false;
        } else {
            $(".name").removeClass("error");
            $(".name").addClass("success");
            return true;
        }
        });
    });

jQuery(文档).ready(函数($){
$('[name=“submit”]')。单击(函数(e){
var name=document.getElementById(“name”).value;
if(re=/[a-zA-Z]*.[a-zA-Z]*/;){
$(“.name”).addClass(“错误”);
返回false;
}否则{
$(“.name”).removeClass(“错误”);
$(“.name”).addClass(“成功”);
返回true;
}
});
});

谢谢

对于有效的电子邮件地址:

您的用户名相同,但您的正则表达式应如下所示:

re = /^[a-zA-Z]*_[a-zA-Z]*$/; //this always needs an underscore to be valid.
以防万一,这是一个接受任何东西的正则表达式,它取决于您的要求:

re = /^[a-zA-Z_]*$/;
re = /^[a-zA-Z_]{3,}$/; //3 or more chars
要测试您的正则表达式:

re = /^[a-zA-Z_]*$/;
return re.test('any_string_to_test'); //it returns true if your string is valid

将正则表达式与jquery一起使用:

  • 将字符串传递给RegExp或使用//语法调用创建regex
  • regex.test(字符串)不是string.test(regex)
在代码中:

$(".name").on('keyup', function(e)
{
    var name = $(this).val();
    if(new RegExp(/^[a-zA-Z_]+$/i).test(name)) // or with quotes -> new RegExp("^[a-zA-Z_]+$", 'i')
        $(this).addClass("error");
    else
        $(this).switchClass("error", "success", 1000, "easeInOutQuad");

    e.preventDefault();
    e.stopPropagation(); // to avoid sending form when syntax is wrong
});
对于电子邮件输入,以下正则表达式可以执行此操作:

/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/i
或..

为了体现一点现代感,你可以使用


@Polak我试过这么做,如果我理解你的意思的话:x对不起,我是javascript新手

<script type="text/javascript">
    jQuery(document).ready(function($){
        $('[name="submit"]').click(function(e){
            var name = document.getElementById("display_name").value;

            re = /[a-zA-Z]*_[a-zA-Z]*/;
            if (re.test(name) {
                //Things to do when the entry is valid.
                $(".NameCheck").removeClass("name_error");
                $(".NameCheck").addClass("name_success");
                return true;
            } else {
                //Things to do when the user name is not valid.
                $(".NameCheck").addClass("name_error");
                return false;
            });
        });
    });

jQuery(文档).ready(函数($){
$('[name=“submit”]')。单击(函数(e){
var name=document.getElementById(“显示名称”).value;
re=/[a-zA-Z]*.[a-zA-Z]*/;
如果(重新测试)(名称){
//条目有效时要执行的操作。
$(“.NameCheck”).removeClass(“name_错误”);
$(“.NameCheck”).addClass(“name_success”);
返回true;
}否则{
//用户名无效时要执行的操作。
$(“.NameCheck”).addClass(“名称错误”);
返回false;
});
});
});

现在使用HTML5的高级功能,您只需按照以下步骤进行验证即可:


姓名:
电邮:

查看HTML5的更多表单验证功能。

您是否真的查找过任何东西或自己尝试过任何东西?看起来是的,但找不到正确的代码和平,只勾选a-Z和下划线。了解regex:在您的代码中:if(re=/[a-zA-Z]*.[a-zA-Z]*/;){…}应替换为:re=/[a-zA-Z]*.[a-zA-Z]*/;如果(re.test('string_to_validate'){..当字符串有效时运行的代码..谢谢,你能告诉我,我应该把它放在哪里吗?如果(…)?是的,如果(re.test(ANY_string))谢谢。尝试理解。感谢帮助此示例正在运行:我已经修改了regex.Fixed代码,有一些完善之处:)首先,你可以测试语法有效性,而不必担心(或之前)提交formI'm new with stackoverflow,我编辑了您的答案,将if(re.test(“name”){……更改为if(re.test(name)){……不带引号,if语句被颠倒。当您定义字符串变量foo=/…/;如正则表达式时,您可以执行foo.test('string to test')之类的操作;当正则表达式接受字符串时,它将返回true。现在我可以更好地理解,谢谢。但是我得到了未捕获的语法错误:意外的标记{错误。但是感谢帮助!我想您忘记了从if(re.test(name){编辑到if(re.test(name)){。现在它开始工作了。非常感谢你的帮助!我做了一些新的更改,但两者都应该对你有用。我测试了它,效果很好。我试过了,但似乎对我不起作用:x it skip是名称输入,而不是验证和检查,但是谢谢!
<script type="text/javascript">
    jQuery(document).ready(function($){
        $('[name="submit"]').click(function(e){
            var name = document.getElementById("display_name").value;

            re = /[a-zA-Z]*_[a-zA-Z]*/;
            if (re.test(name) {
                //Things to do when the entry is valid.
                $(".NameCheck").removeClass("name_error");
                $(".NameCheck").addClass("name_success");
                return true;
            } else {
                //Things to do when the user name is not valid.
                $(".NameCheck").addClass("name_error");
                return false;
            });
        });
    });