JavaScript正则表达式

正则表达式
1. 什么是正则表达式
2. 创建正则表达式
3. 获取控制
4. 常用的正则

正则表达式
表示字符串规范的一种表达式,如只能包含数字,第几个字符必须是字母等。

创建正则表达式
创建正则表达式和创建字符串类似,创建正则表达式提供了两种方法,一种是采用 new运算符,
另一个是采用字面量方式。

//使用new RegExp对象
var box=new RegExp('box'); //第一个参数字符串
var box=new RegExp('box','ig'); //第二个参数可选模式修饰符,模式修饰符是可选参数,i忽略大小写,g全局匹配,m多行匹配
//第二种创建方式采用字面量方式。
var box=/box/; //直接用两个反斜杠括起来,匹配box字符串
var box=/box/ig;  //在第二个斜杠后面加上模式修饰符,匹配box字符串且忽略大小写

RegExp对象包含两个测试方法:
test()和 exec(),功能基本相似,用于测试字符串匹配

var pattern = new RegExp('box','i');//i是忽略大小写
var str="this is a Box";
alert(pattern.test(str));//返回true。

var pattern = new RegExp('box','i');//i是忽略大小写
var str="this is a Box";
alert(pattern.exec(str));//返回Box(被匹配的那段文本)

//简便写法
alert(/box/i.test('This is a box');

字符串正则表达式方法
除了 test()和 exec()方法,String对象也提供了 4个使用正则表达式的方法
match(pattern) 返回 pattern中的子串或 null
replace(pattern,replacement) 用 replacement替换 pattern
search(pattern) 返回字符串中 pattern开始位置
split(pattern) 返回字符串按指定 pattern拆分的数组

代码举例:

var pattern = /box/ig;
var str = 'this is a Box ! wo sih box boxBox';
alert(str.match(pattern));//返回Box,box,box,Box

var pattern = /box/ig;
var str = 'this is a Box ! wo sih box boxBox';
alert(str.search(pattern)); //返回10,第十位置出现box,从0开始数

var pattern = /box/ig;
var str = 'this is a Box ! wo sih box boxBox';
alert(str.replace(pattern,'fix'));//返回this is a fix! wo sih fix fixfix

var pattern = /box/ig;
var str = 'this is a Box ! wo sih box boxBox';
alert(str.split(pattern));//返回this is a,!wo sih,,,

RegExp对象的静态属性
用于对正则结果的处理,取结果的特殊位置字符串
属性 短名 含义
input lastMatch & 最后一个匹配字符串
lastParen +leftContext ` 最后一次匹配前的子串
multiline rightContext ’ 在上次匹配之后的子串

举例:

var pattern = /box/ig;
var str = 'this is a Box ! wo sih box boxBox';
pattern.test(str);//先执行正则
alert(RegExp.input);
alert(RegExp.lastMatch);
alert(RegExp.lastParen);

//为了方便调试,可以将结果输出到控制台,
console.log(RegExp.lastMatch);

获取控制
正则表达式由普通字符和元字符组成。元字符就是[0-9],[a-z],[A-Z]这些类型。
正则表达式元字符是包含特殊含义的字符。它们有一些特殊功能,可以控制
匹配模式的方式。
反斜杠后的元字符将失去其特殊含义。
1. 单个字符和数字
2. 空白字符
3. 锚字符
4. 重复字符
5. 替代字符
6. 记录字符

[0-9] [a-z] [A-Z]
\d 匹配数字
\D 匹配非数字 跟[^0-9] 相同
\w 匹配字母和数字及_
\W 匹配非字母和数字及_

\0 匹配null的字符
\b 匹配空格
\f 匹配进纸字符
\n 匹配换行字符。
\r 匹配回车符字符。
\s 匹配任何空白,包括空格、制表、换页等。与 “[ \f\n\r\t\v]” 等效。
\S 匹配任何非空白字符。与 “[^ \f\n\r\t\v]” 等效。

^ 匹配输入的开头。
$ 匹配输入的末尾。

x? 匹配一个或0个x
x* 匹配0个或多个
x+ 匹配至少一个x
(xyz)+ 匹配至少一个(xyz)
x{m,n} 匹配最少m个,最多n个x

a|b|c 三个中的任意个

举例:

var pattern = /g.*gle/;//匹配0个或多个g并以gle结尾
var str = "ggle";
alert(pattern.test(str));

常用的正则
检查邮政编码

var pattern=/[1-9][0-9]{5}/;
var str='224000';
//共 6位数字,第一位不能为   0
alert(pattern.test(str));

简单的电子邮件验证

var pattern=/^([a-zA-Z0-9_\.\-]+)@([a-zA-Z0-9_\.\-]+)\.([a-zA-Z]{2,4})$/;
var str='yc60.com@gmail.com';
alert(pattern.test(str));
var pattern=/^([\w\.\-]+)@([\w\.\-]+)\.([\w]{2,4})$/;
var str='yc60.com@gmail.com';
alert(pattern.test(str));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值