首先 不推荐使用*,它代表0至多次 容易出现一些问题 一般多用+去实现正则;
其次是对一些东西的测试;
1. var pattern = /^\s+(.+)\s+$/;
var str = ' goo gle ';
alert(pattern.test(str));
alert(pattern.exec(str));
此时test方法的匹配答案为true;
exec会返回 goo gle ,goo gle ;
如果正则改为var pattern = /^\s+(.+)\s+$/g;
此时exec会返回null;而test不会受到影响;
ps:因为在贪婪模式下,所以即便去掉强制首尾exec也会返回null的;(总之还是要看具体情况 )
2.对*,+,的一些测试 :
var pattern1 = /^.+(abc)*$/;
var str1 = 'abcabc92123abc';
alert(pattern1.test(str1));
alert(pattern1.exec(str1));
此时通过exec得到的abcabc92123abc,
test:true;
如果将正则改为:var pattern1 = /^.+(abc)+$/;
此时exec返回:abcabc92123abc,abc
test:true;
3.如果不用^$强制从首开始尾部结束进行正则校验,当用test()时,字符串中只要有部分区域符合正则即会返回true;
4.当正则前后有其他规则时,或选择符要用分组符号包起来;
谈一谈js中的正则表达式1
最新推荐文章于 2024-02-05 13:32:24 发布
