1.在js中创建正则对象
(1)new RegExp()创建正则对象
var reg=new RegExp()
(2)字面量创建正则对象
var reg=/正则表达式/
2.正则对象的test()方法
正则对象.test(字符串)
3.正则表达式
特殊字符
\d 代表数字
\D 代表非数字
\w 代表数字,字母,下划线
\W 代表非数字,非字母,非下划线
\s 代表空白字符
\S 代表非空白字符
. 代表除了换行符以外的任意字符
^ 代表以谁开头
$ 代表以谁结尾
限制符:
{n} 代表前面的字符可以出现n个
{n,} 代表前面的字符可以出现n个到多个
{n,m} 代表前面的字符可以出现n个到m个
* 代表前面的字符可以出现0个或者多个
+ 代表前面的字符可以出现1个或者多个
? 代表前面的字符可以出现0个或者1个
其他字符:
[ ] 代表只能有一个字符,必须是中括号中的一个字符
[ ^] 代表只能有一个字符,不能有中括号中的字符
\ 转义符 普通字符转特殊 特殊字符转普通
| 会把正则分成两部分
()代表分组
[\u4e00-u9fa5] 匹配汉子
[0-9] 从0-9的数字
[0-9a-z] 从0-9 从a-z
(1) \d 代表数字
var str='123' var reg=/\d/ //只要有数字,就返回true; console.log(reg.test(str))
(2) \D 代表非数字
var str='a' var reg=/\D/ //只要有非数字,就返回true;
console.log(reg.test(str))
(3) \w 代表数字,字母,下划线
var reg=/\D/ //只要有数字,或字母,或下划线,就返回true;
(4)\W 代表非数字,非字母,非下划线
var reg=/\D/ //只要有数字,字母,下划线,就返回true;
(5)\s 代表空白字符
var reg=/\s/ //只要有空白字符,就返回true;
(6)\S 代表非空白字符
var reg=/\s/ //只要有非空白字符,就返回true;
(7) . 代表除了换行符以外的任意字符
var reg=/./ //只要有非换行符,就返回true;
(8)^ 代表以谁开头
var str='a' var reg=/^a/ //只要以a开头,就返回true;
console.log(reg.test(str))
(9)$ 代表以谁结尾
var str='wwa' var reg=/a$/ //只要以a结尾,就返回true;
console.log(reg.test(str))
(10) ^abc$ 字符串中只能有abc
var str='abc' var reg=/^abc$/ //只能有abc,就返回true;
console.log(reg.test(str))
(11)^\d$ 字符串中只能有一个数字
var str='3' var reg=/^\d$/ //只能有1个数字,就返回true;
console.log(reg.test(str))
(12)^\d{n}$ 字符串中只能有n个数字
var str='13922225555' var reg=/^\d{11}$/ //只能有11个数字,就返回true;
console.log(reg.test(str))
(13)^\d{n,}$ 字符串中只能有n个及以上数字
var str='13922225555' var reg=/^\d{11,}$/ //只能有11个及以上数字,就返回true;
console.log(reg.test(str))
(14)\d{n,} 只要包括n个及以上的数字
var str='13993366666544gf' var reg=/\d{11,}/ console.log(reg.test(str))
(15)^\d{n,m}$ 字符串中只能有n到m个数字
var str='1234' var reg=/\d{3,4}/ console.log(reg.test(str))
(16)^\d*$ 字符串中只能有0到多个数字
var str='' var reg=/^\d*$/ //要么什么都没有,要么只能是数字 console.log(reg.test(str))
(17)^\d+$ 字符串中至少有一个数字
(18)^\d?$ 要么什么都没有,要么只要一个数字
(19)[ ] 代表只能有一个字符,必须是中括号中的一个字符
var str='d' var reg=/^[sded]$/ console.log(reg.test(str))
(20)[ ^] 代表只能有一个字符,不能有中括号中的字符
var str='c' var reg=/^[^sded]$/ console.log(reg.test(str))
(21)\ 转义符
var str='.' var reg=/^\.$/ console.log(reg.test(str))
(22)| 代表把正则分为两部分
var str='ased' var reg=/^a|d$/ //代表以a开头,以d结尾 console.log(reg.test(str))
(23) ()代表分组
var str='gray' var reg=/^gr(a|e)y$/ //代表gray或者grey console.log(reg.test(str))
(24)[0-9] [a-z] [0-9a-z] [a-zA-Z]
var str='5' var reg=/^[0-9]$/ //代表0-9 console.log(reg.test(str))
4.案例
(1)验证手机号码
var reg=/^\d{11}$/
(2)验证邮编
var reg=/^\d{6}$/
(3)验证邮箱
var reg=/^\w+@\w+\.\w+$/
5.正则的参数
g :全局
6.正则的提取
字符串.match(正则规则)
var str='张三:154,李四:545,王五;566' var reg=/\d+/g console.log(str.match(reg))
7.替换
字符串.replace(正则/被替换的字符,替换的字符)
var str='fgh,jkl,jl,jkljl,jhj,ghjhjk,hgjhhj' var reg=/,|,/g console.log(str.replace(reg,'|'))