使用javascript匹配字符串中任意长度的字符的正则表达式
Regular expression to match an arbitrary length of characters in a string using javascript?
我正在使用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] +/
做你想做的事?
- 不同浏览器中的空白字符正则表达式行为
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 用于匹配不带字符的单词的正则表达式
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 正则表达式搜索一个空格,后跟一个字符
- 为什么这个正则表达式不't匹配最后一个字母数字字符
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- javascript正则表达式来识别所有特殊字符
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 如何使用正则表达式限制字符串的第一个字符
- 为什么以下正则表达式不删除 ## 字符
- 模仿负查找以匹配JavaScript正则表达式中没有紧跟特定字符的模式
- 匹配某个字符后所有文本的正则表达式是什么
- Javascript中的正则表达式,用于只有数字的字符串,并且不应在除数字以外的任何位置包含任何字符
- JavaScript正则表达式(带_-的字母数字字符)
- 使用正则表达式查找字符串中的不匹配字符
- 用于删除字符串中字符开头到结尾的正则表达式
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- 排除组中的字符(正则表达式)
- Javascript替换:不要在连字符(正则表达式)上拆分单词