Javascript 为什么这个正则表达式接受特殊字符和数字?

Javascript 为什么这个正则表达式接受特殊字符和数字?,javascript,jquery,regex,Javascript,Jquery,Regex,我为电子邮件创建了一个简单的正则表达式。它是: /[a-z]+@{1}[a-z]{2,}/ 现在的问题是,它正在接受一封类似something;;99@asd测试时。但是它不应该允许;;99? 我只想要信 其次,请告诉我正则表达式中使用的开始(^)和结束($)符号。我在codeacademy上读到过他们,但不明白他们的目的。他们和我最初的问题有关吗 编辑: 以下是整个jQuery: <script type="text/javascript"> $(document).rea

我为电子邮件创建了一个简单的正则表达式。它是:
/[a-z]+@{1}[a-z]{2,}/
现在的问题是,它正在接受一封类似
something;;99@asd
测试时。但是它不应该允许
;;99
? 我只想要信

其次,请告诉我正则表达式中使用的开始(
^
)和结束(
$
)符号。我在codeacademy上读到过他们,但不明白他们的目的。他们和我最初的问题有关吗

编辑: 以下是整个jQuery:

<script type="text/javascript">
    $(document).ready(function(){
        var $pat1=/[a-zA-Z0-9]{5}/;
        var $pat2=/[a-z]+@{1}[a-z]{2,}/;
        $(".savebutton").click(function(){
            var $name=$("input[name='pname']").val();
            var $email=$("input[name='pmail']").val();
            var $pswd=$("input[name='pswd']").val();
            if(($name!="" && $email!="") && $pswd!=""){
                if($pat1.test($name)&&$pat2.test($email)){
                    //ACTIONS               
                           }
                    }
        })
    })
</script>

$(文档).ready(函数(){
变量$pat1=/[a-zA-Z0-9]{5}/;
var$pat2=/[a-z]+@{1}[a-z]{2,}/;
$(“.savebutton”)。单击(函数(){
var$name=$(“输入[name='pname']”)val();
var$email=$(“输入[name='pmail']”)val();
var$pswd=$(“输入[name='pswd']”)val();
如果(($name!=“”&&&$email!=“”)&&&$pswd!=“”){
如果($pat1.test($name)和&$pat2.test($email)){
//行动
}
}
})
})
试试这个正则表达式

/^[a-z]+@{1}[a-z]{2,}$/g
字符串必须以a-z(^)开头,以a-z($)结尾

^和$表示开始和结束

试试这个正则表达式

/^[a-z]+@{1}[a-z]{2,}$/g
字符串必须以a-z(^)开头,以a-z($)结尾


^和$表示开始和结束

您的正则表达式看起来很好。我在几个测试用例上测试了它

  • 符号^匹配字符串的开头,如果启用了多行标志(m),则匹配行的开头。这匹配的是位置,而不是角色

  • 符号$匹配字符串的结尾,如果启用了多行标志(m),则匹配行的结尾。这匹配的是位置,而不是角色


  • 例如,如果必须匹配长度正好为3的模式,则可以使用^$表示模式的开始和结束。

    正则表达式看起来很好。我在几个测试用例上测试了它

  • 符号^匹配字符串的开头,如果启用了多行标志(m),则匹配行的开头。这匹配的是位置,而不是角色

  • 符号$匹配字符串的结尾,如果启用了多行标志(m),则匹配行的结尾。这匹配的是位置,而不是角色


  • 例如,如果必须匹配长度正好为3的模式,则可以使用^$来表示模式的开始和结束。

    电子邮件正则表达式的示例如下

     /^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/m
    
    对于你的问题

    请告诉我正则表达式中使用的开始(^)和结束($)符号…

    在我上面的示例正则表达式中,如果在正则表达式中使用多行(m)修饰符,则最好使用这两个符号。(^)用于标识行的开头,($)用于标识行的结尾。它确实会影响原始问题,但我建议您在正则表达式中使用此符号


    希望我能帮上忙。

    电子邮件正则表达式的示例如下

     /^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/m
    
    对于你的问题

    请告诉我正则表达式中使用的开始(^)和结束($)符号…

    在我上面的示例正则表达式中,如果在正则表达式中使用多行(m)修饰符,则最好使用这两个符号。(^)用于标识行的开头,($)用于标识行的结尾。它确实会影响原始问题,但我建议您在正则表达式中使用此符号



    希望我能帮上忙。

    正则表达式与您提供的字符串不匹配。看见您确定提供了与代码中使用的相同的输入吗?您可以删除量词
    {1}
    ,因为1是默认值。如前所述,regex与您提供的电子邮件不匹配。请展示你的消费习惯regex@Liam检查编辑。正则表达式与您提供的字符串不匹配。看见您确定提供了与代码中使用的相同的输入吗?您可以删除量词
    {1}
    ,因为1是默认值。如前所述,regex与您提供的电子邮件不匹配。请展示你的消费习惯regex@Liam检查编辑。谢谢。请阅读我问题中的编辑。它能解决我的问题吗?是的,它只会插入^。你能告诉我为什么不使用“^”和“$”时它允许数字和特殊字符吗?你需要add.com或其他域(regex)来完成电子邮件regexThank。请阅读我问题中的编辑。它能解决我的问题吗?是的,它只会插入^。你能告诉我为什么不使用“^”和$时它允许数字和特殊字符吗?你需要add.com或其他域(regex)来完成电子邮件regex