使用javascript匹配字符串中任意长度的字符的正则表达式

Regular expression to match an arbitrary length of characters in a string using javascript?

本文关键字:字符 正则表达式 任意长 javascript 字符串 使用      更新时间:2023-09-26

我正在使用javascript学习正则表达式匹配,并且对下面描述的场景有疑问。

我正在尝试验证电子邮件,条件如下:

格式应为xxx@yyy.zzz where
一)"xxx","yyy"answers"zzz"部分只能取小写a和z之间的值
B) zzz的长度;Yyy和XXX部分是任意的(但应该是最小的一个)

现在我明白我可以像这样构建正则表达式:编辑:修正后的正则表达式/[a-z]+@[a-z]+'.[a-z]+/

和上面的方法会将"aaa@aaa.aaa"这样的字符串求值为真。

但我担心的是,在上面的表达式中,如果我提供"a999@aaa.aaa",它将再次评估为真。现在,如果我将regex修改为**/[a-z]{1,}@[a-z]+'.[a-z]+/**,那么它将评估"a999@aaa.aaa"为真,因为"a"作为第一个字符的存在。

所以,我想知道如何匹配电子邮件"xxx@yyy.zzz"中的第一部分"xxx",它从第一个字符检查整个字符串,直到它达到@符号,条件是它应该只取a到z作为有效值。

换句话说,正则表达式不应该介意电子邮件的用户名部分的长度,无论输入的字符数量如何,它都应该根据指定的正则表达式条件进行测试,并且应该测试从索引1到索引@的一组字符。

您的正则表达式将不会显示a999@aaa.aaa是匹配的。然而,它将显示9999a@aaa.aaa9999是匹配的。您缺少的正则表达式标记是用于字符串开始的^和用于字符串结束的$。这就是你要找的:

/^[a-z]{1,}@[a-z]+'.[a-z]+$/

你可以在这个在线验证器上测试这个表达式:http://tools.netshiftmedia.com/regexlibrary/#

/[a-z]+@[a-z]'.[a-z]+/

将不匹配"aaa@aaa.aaa",但将匹配"aaa@a.aaa"。在@和.

之间只允许有一个小写字母。

同样,字符串"a999@aaa.aaa"将不匹配。[a-z]+表示查找a和z之间的一个或多个字符…不包括数字,因此999将不匹配。

执行正则表达式

/[a - z] + @ [a - z] +/。[a - z] +/

做你想做的事?