JS正则表达式问题
varchars="abc@foxmail.com";varret=/@(.*)\./.exec(chars);alert(ret[1]);1.(.*)是什么意思。2.\...
var chars="abc@foxmail.com";
var ret=/@(.*)\./.exec(chars);
alert(ret[1]);
1. (.*)是什么意思。
2. \.是什么意思
3. ret 中即为返回数组["@foxmail.", "foxmail"],为什么会是这两个 展开
var ret=/@(.*)\./.exec(chars);
alert(ret[1]);
1. (.*)是什么意思。
2. \.是什么意思
3. ret 中即为返回数组["@foxmail.", "foxmail"],为什么会是这两个 展开
1个回答
展开全部
首先/@(.*)\./ 这个是一个正则表达式(JS中正则表达式必须写在反斜杠 / 开始,反斜杠 / 结束的里面)。
1.表达式中括号里面的(.*)表示匹配任意数量的任何字符。
2.斜杠\表示转义字符,因为点. 在正则表达式里面有特殊意义(表示匹配任意单个字符),而这儿需要匹配的就是“abc@foxmail.com”中一个点. 字符,所以需要转义。
3.正则表达式/@(.*)\./执行exec方法后,将返回值以数组方式赋值给了ret。数组里面内容包含匹配到的总字符串及匹配到的分组字符串(正则表达式中的括号()代表分组)。
这儿你写的正则表达式/@(.*)\./,表示从@开始匹配,匹配@和@后面直到点. 之前的任意字符,当然也包括点.,所以匹配到的总字符串就是@foxmail.,分组字符串就是(.*)这一部分对应的foxmail字符串。
1.表达式中括号里面的(.*)表示匹配任意数量的任何字符。
2.斜杠\表示转义字符,因为点. 在正则表达式里面有特殊意义(表示匹配任意单个字符),而这儿需要匹配的就是“abc@foxmail.com”中一个点. 字符,所以需要转义。
3.正则表达式/@(.*)\./执行exec方法后,将返回值以数组方式赋值给了ret。数组里面内容包含匹配到的总字符串及匹配到的分组字符串(正则表达式中的括号()代表分组)。
这儿你写的正则表达式/@(.*)\./,表示从@开始匹配,匹配@和@后面直到点. 之前的任意字符,当然也包括点.,所以匹配到的总字符串就是@foxmail.,分组字符串就是(.*)这一部分对应的foxmail字符串。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询