1.正则表达式:也叫规则表达式,按照移动的规矩组成的一个表达式—是来匹配字符串,
*
* 中国移动电话10086 中国联通10010,中国电信:10000—可以写一个正则表达式匹配所有数字
*
* 正则表达式:由元字符 或者 限定符 组成的一个式子
*
* 1.元字符===================
* 1.1 .-- 表示出了换行符以为的任意一个字符’111’ ‘,’
* 1.2 []—表示范围:
* [09]:表示09之间任意一个数字’123’‘534’
* [a-z]:表示a到z之间任意一个字母 ‘你好吗xixi’
* [A-Z]:表示A到之间任意一个字母
[a-zA-Z]:所有的字母中任意一个
[1-8]:表示到8之间任意一个数字
–表示把正则表达式中的意义取消掉
[.]:表示一个点.
1.3 |— 或者
[0-9]|[a-z]:要么是一个数字,要么是一个小写的字母 ‘哈哈0 嘻嘻x’
1.4 ()---分组,提高优先级
[0~9]|([a-z])
([0~9])|([a-z]):两个组,从左往右计算
2.又是元字符,又是限定符======================
2.1 *---表示前面的表达式出现0次或者多次
[a-z][0-9]*:任意一个小写字母,后面要么0个数字,要么多个数字
'afjaklakdlas7'
2.2 +------表示前面的表达式出现了1次或者多次
[a-z][0-9]+:任意一个小写字母,后面至少出现一个数字
'ajljlj99808'
2.3 ?---- 表示前面的表达式出现了0次或者1次
[3][a-z]? : 3,后面出现-一个字母,或者-一次也不出现
'3666a' '3j' '3'
----阻止贪婪模式
3.限定符=================================
3.1 {n}----限定前的表达式出现了n次
[0-9]{3}:数字一定是3个
'哈哈6680嘻嘻0'
3.2 {n,}---前面的表达式出现n次到多次
{0}----表示前面的表达式出现了0次,或者多次---和*一样
[a-z][0-9]{0,}:任意一个小写字母,后面要么0个数字,要么多个数字
'哈哈abc89999'
{1,}----表示前面的表达式 出现1次 或者多次 ---和+ 一样
{0,1}---表示前面的表达式 出现0次
3.2{n,m}----前面的表达式出现n到m次
{3,7}---表示前面的表达式 出现3次或者到7次
[0-9]{3,7} '哈哈12345678'
错误的写法 ;{,10};
4.^-----以是什么开头
^[0-9]:以数字开头
^[a-z]:以字母开头
------取反
[^0-9]:表示非数字
[^a-z]:表示非小写字母
5.$----以什么结束
[0-9]$:表示一定要以数字结尾
^[0-9]$:严格模式 '哈哈'
6.
\d:任意一个数字 [0-9]
\D:任意非数字 字母 ,特殊符号
\s:空白符
\S:非空白符
\w:非特殊符号 数字,字母,下划线 [0-9a-zA-z]
\W:特殊符号 ,。?#...
一些方法
全局模式匹配:g 用法:/[0-9]/g
1. match方法
字符串.match( 正则表达式)----返回一个数组,储存匹配的值
var str ='中国移动:10086,中国联通:10010,中国电信:10000';
var reg =/\d{5}/g;
console.log(str.match(reg))
var str= '123@qq.com,zhangsan@fs.fs.cn,123@163.com,hhh@xxx.vvv.com';
var reg =/[0-9a-zA-Z.-_]+[@][0-9a-zA-Z._]+([.][a-zA-z]+){1,2}/g;
var reg =/\w+@\w(\.\w+)?/g;
console.log(str.match(reg));
//2.replace
//字符串.repace(正则表达式,替换的字符串);
var str ='张宗源很有气质,超级nice';
str.replace(/帅/g,'好');
console.log(str);
//3.exec():字符串中国的正则表达式的匹配
//正则表达式对象.exec()
str='中国移动:10086,中国联通:10010,中国电信:10000'
var reg =/\d{5}/g;
console.log(reg)
4.split()
-可以将一个字符串拆分为一 一个数组
-方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分字符串
var str ="1a2b3c4d5e6f7"
var result =str.split(/[A-z]/)
console.log(result)//1,2,3,4,5,6,7
5.search()
可以搜索字符串中是否含有指定内容
如果搜索到指定内容,则会返回第一次出现的索引, 如果没有搜索到返回-1
它可以接受一个正则表达式作为参数,然后会根据正则表达式去检索字符串
搜索字符串中是否含有abc或aec或afc
str ="hello hello aec afc";
result = str.search(/a[bef]c/);
console.log(result)//6
match( )
-可以根据正则表达式, 从一个字符串中将符合条件的内容提取出来
-默认情况下我们的match只会找到第-一个符合要求的内容,找到以后就停止检索
我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容
可以为一个正则表达式设置多个匹配模式,且顺序无所谓
match( )会将匹配到的内容封装到一个数组中返回,即使只查询到- -个结果
var str ="1a2b3c4d5e6f7";
result =str.match(/[\d]/g )
result1 =str.match(/[a-z]/g )
console.log(result)//1234567
console.log(result1)abcdefg
2.replace
2. replace
// 字符串.replace(正则表达式,替换的字符串);
var str = '生活很残酷';
str = str.replace(/残酷/g, '美好');
console.log(str);