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

时间:2016-07-18 08:45:12

标签: javascript jquery regex

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

其次,请告诉我正则表达式中使用的开头(;;99)和结束(^)符号。我在codeacademy上读过他们,但无法理解他们的目的。他们是否与我原来的问题有关?

修改 这是整个jQuery:

$

3 个答案:

答案 0 :(得分:2)

试试这个正则表达式

/^[a-z]+@{1}[a-z]{2,}$/g

您的字符串必须以a-z(^)开头,并以a-z($)

结尾

^和$用于开头和结尾

答案 1 :(得分:0)

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

  1. 符号^ 匹配字符串的开头,如果多行标记(m)为,则匹配行的开头启用。 这匹配一个位置,而不是一个角色。

  2. 符号$ 匹配字符串的结尾,如果多行标记(m)是,则匹配行的结尾启用。 这匹配一个位置,而不是一个角色。

  3. 例如,如果您必须匹配完全长度为3的模式,那么您可以使用 ^ $ 来表示模式的开头和结尾。

答案 2 :(得分:0)

电子邮件正则表达式的一个例子是这样的

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

您的问题,

  

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

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

希望我能帮上忙。