正则表达式

正则表达式,用于校验一段字符是否符合他的规定。
如邮箱必须是一段数字或字母或下划线加上@字符加上(.)加上一段字符。
如果一段邮箱没有@或没有一些必要的字段,正则可以检查出来他的正确性。
正则,发现错误的代码。

常用正则
邮箱
/^([\w\.\-]+)@([\w\.\-])\.([a-Z]{2,4}$)/
邮政编码
/[1-9][0-9]{5}/

正则的创建
开头结尾用/,可以在最后面加上模式修饰符

var reg = /earth/;
var reg = /earth/img;
new运算符创建
var reg = new RegExp('earth');
var reg = new RegExp('earth','img');

模式修饰符
i:忽略大小写匹配
g:全局匹配
m:多行匹配

正则的写法
var reg = /earth/;
var str ="wow earth!!"
alert(reg.test(str));
结果:true
简写
alert(/earth/.test('wow earth!!'));
结果:true

RegExp对象
判断字段是否能匹配
TEST

alert(/earth/.test('wow earth!!'));
结果:true
返回第一次匹配到的值,否则返回NULL
EXEC
alert(/earth/.exec('wow earth!!'));
结果:earth
alert(/apple/.exec('wow earth!!'));
结果:null

STRING中正则表达式方法
注:之前的是规则在前,字符在后,现在是反之
多次匹配到的返回为一个数组
MATCH
alert('wow earth! earth!!'.match(/earth/g));
结果:earth,earth
alert('wow earth! earth!!'.match(/earth/g).length);
结果:2
返回第一次匹配的位置
SEARCH

alert('wow earth! earth!!'.search(/earth/g));
结果:4
替换匹配到的字符
REPLACE

alert('wow earth! earth!!'.replace(/earth/,'apple'));
结果:wow apple! apple!!
以匹配到的为分隔符,拆分成字符串数组
SPLIT

alert('wow earth! earth!!'.split(/earth/));

结果:wow ,! ,!!

RegExp对象
查看上一次匹配的信息

var reg = /ear(t)h/;
var str = 'wow earth! EARTH!!';
reg.test(str);// 非简写
运行之后
alert(RegExp.input);//显示匹配的字段
结果:wow earth! EARTH!!
alert(RegExp.leftContext);//第一次匹配到的字符的前面
结果:wow
alert(RegExp.rightContext);//第一次匹配到的字符后面
结果:! EARTH!!
alert(RegExp.lastMatch);//第一个匹配字符,有人说是最后一个
结果:earth
alert(RegExp.lastParen);//第一个括弧匹配字符,有人说是最后一个
结果:t
alert(RegExp.multiline);//是否用于多行
结果:undefined

RegExp对象
查看创建好的正则对象的属性
var reg = /earth/img;
alert(reg.global);//是否全局
结果:true
alert(reg.ignoreCase);//是否大小写
结果:true
alert(reg.multiline);//是否多行匹配
结果:true
alert(reg.lastIndex);//下次匹配的位置
结果:0
alert(reg.source);//表达式字符
结果:earth

元字符
有特殊含义的字符,用于规定匹配规则
以下结果全为true

点号,表示一个任意字符

alert(/e...h/.test('wow earth! earth!!'));
^,表示不能出现的字符
alert(/[^z]/.test('wow earth! earth!!'));
[a-Z],表示字母a到字母Z的任意大小写的一个字母,如果用只要大写或小写可以[a-z]或[A-Z]
alert(/[a-Z]sdf/.test('wow earth! earth!!'));
小写b,表示任意数字,和[0-9]一样
alert(/wow\b/.test('wow9 earth! earth!!'));
大写b,表示不可为任意数字,和[^0-9]一样
alert(/wow\B/.test('wow earth! earth!!'));
小写w,表示任意数字字母和下划线,和[0-9a-Z_]一样
alert(/wow\w/.test('wow9 earth! earth!!'));
大写W,表示不可为任意数字字母和下划线,和[^0-9a-Z_]一样
alert(/wow\W/.test('wow earth! earth!!'));
?,匹配0个或一个字符,没有或有一个
alert(/(w)?.test('wow earth! earth!!'));
*,匹配0个或多个,没有或有很多
alert(/g*\W/.test('wow earth! earth!!'));
+,匹配一个字符,有一个
alert(/(wow)+/.test('wow earth! earth!!'));
{n,m},匹配最少n个,最多m个字符
alert(/(earth){1,2}/.test('wow earth! earth!!'));
a|b|c,匹配a或b或c
alert(/apple|earth|apppppp/.test('wow earth! earth!!'));

其他元字符
^,行首匹配
$,行尾匹配
\0,匹配NULL字符

\b,匹配空格字符

\f,匹配进纸字符,这是啥?

\n,匹配换行字符

\r,匹配回车字符

\t,匹配制表字符

\s,匹配空白、空格、换行、制表字符

\S,匹配非空白字符
\a,只匹配字符开始处
\b,匹配单词边界,注意在[ ]里面含义不一样
\B,匹配非单词边界
\G,匹配当前搜索的开始位置
\Z,匹配字符串结束处或尾行
\z,只匹配结束处
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值