4.2字符集合
- [ ]
var reg=/[1a2b3]/; //匹配一个字符,这个字符必须是:1/a/2/b/3其中一种,如果是就表示满足,如果不是就不满足
reg.test("a"); //结果为:true
reg.test("3"); //结果为:true
reg.test("fg56"); //一个符合要求的字符都不存在,结果为:false
reg.test("a999"); //结果为:true
var reg2=/[0-9]/; //匹配数字0-9之间,任何一个数字 等价于:/\d/
var reg3=/[a-z]/; //匹配小写字母
var reg4=/[A-Z]/; //匹配大写字母
var reg5=/[a-zA-Z]/;//匹配所有字母
var reg6=/[A-Za-z]/;//匹配所有字母
- [ ^ ]
var reg=/[^123]/; //匹配一个字符,但是这个字符既不是1 并且 不是2 并且 不是3
reg.test("a"); //true
reg.test("3"); //false
reg.test("123"); //没有1,2,3以外的字符,结果为:false
reg.test("a123"); //存在一个符合条件的a,所以结果为:true
4.3边界
- ^ 表示字符串最左边
- $ 表示字符串最右边
var reg=/^abc/; //表示以abc开头
reg.test("123abc123"); //并不是以abc开头,结果为:false
reg.test("abc123"); //以abc开头,结果为:true
var reg=/abc$/; //表示以abc结尾
reg.test("123abc"); //结果为:true
reg.test("abc123"); //结果为:false
reg.test("123bc"); //结果为:false
var reg=/^abc$/; //表示字符串abc
reg.test("abc"); //结果为:true
reg.test("123abc"); //结果为:false
4.4量词
*
出现0次或多次
var reg=/\d*/;
reg.test("123"); //true
reg.test("234"); //true
var reg3=/1\d*/;
reg3.test("1"); //true
reg3.test("123"); //true
reg3.test("a123") //true
reg3.test("a123456b"); //false
+
出现1次或多次(至少一次)
var reg=/1\d+/;
reg.test("1"); //false
reg.test("123"); //true
?
出现0次或一次
var reg=/1\d?/;
reg.test("12"); //true
reg.test("1"); //true
{5}
出现5次
var reg=/1\w{5}/;
reg.test("1abc"); //false
reg.test("112345"); //true
reg.test("1abc12"); //true
{2,}
至少出现2次
var reg=/\d{2,}/;
reg.test("12"); //true
reg.test("5"); //false
{3,5}
出现3-5次
var reg=/abc{3}/; //表示匹配abccc
reg.test("123abccc123"); //结果为:true
var reg3=/(abc){2}/; //匹配abcabc
( )
分组
//010-88889999
//0576-12312312
//0895-1234567
var reg=/(\d{3,4})-(\d{7,8})/; //匹配电话号码
var arr="021-33335555".match(reg)
arr[0] //全部
arr[1] //第一组:区号:021
arr[2] //第二组:号码:333355555
|
或者
var reg=/abc|123/; //表示匹配abc或者123
reg.test("abc456"); //true
var reg5=/^abc|123$/; //匹配以abc开头,或者以123结尾
reg5.test("abcafsadfasd");//true
reg5.test("afsdfasdf123");//true
var reg6=/^(abc|123)$/; //匹配abc/123,并且只能出现abc或者123
console.log(reg6.test("abc"));//true
console.log(reg6.test("123"));//true
console.log(reg6.test("abc123"));//false
以上是基本的正则表达式一些规则,更多详细可以参考文档:正则表达式参考文档