上一篇,我们了解了^ 的含义,是从首位开始的意思,也就是左边开始;
^ 在不同的位置的含义是不一样的,我们再来看看^ 的第二种意思;
并且,我们这一次使用test( ) 来代替之前的match( );
先来看看test( ),之前我们通过match( ) 返回匹配的结果的数组,这一次,我们使用test( )返回匹配是true 或者false;
<script>
var str="123abc123";
var patt=/1/g;
alert(patt.test(str));
</script>
结果是:true ,因为我们在 str 中匹配到了 1;
这就是test()的用法,匹配到了返回true,没有匹配成功返回false;
了解了test( ) ,现在我们来看下面的代码:
<script>
var str="123abc123";
var patt=/[a-z]/g;
alert(patt.test(str));
</script>
返回的结果是true, 上面的正则的意思是匹配 a 到 z 之间的字母,匹配到了,返回true,否则返回false;
[ a-z ] 的意思就是匹配 a 到 z 之间的任意字母,这是一个范围,所以框起来了;
再看:
<script>
var str="abcabc";
var patt=/[^a-z]/g;
alert(patt.test(str));
</script>
结果变成了false,所以,^在[ ]里面的时候,相当于取反的意思,也就是匹配不是 a 到 z 的其它字符的意思;
字符串 str ="abcabc" 都是 a~z 之间的字符,所以返回false;
如果 str = "abc1" 那么存在 1 不是 a~z 之间的字符,返回 true ;
注意,这里的 ^是直接在[ ]里面;如果 [ (^) ] 这样,里面还有括号,就不是取反了,和上一篇 ^ 意思相同;