JS-正则表达式1

正则表达式是对文本字符串进行验证和格式化的方式。

有时候用户需要在html表单中填写姓名,地址,邮箱等信息,在表单提交到服务器之前,JS程序会先检查一下填入表单中的信息是否符合要求,例如邮箱的格式要有@符号,以.com或.cn来结尾;年龄不能小于0等等。正则表达式就可以起到验证字符串的作用。这样的客户端验证可以节约大量的服务器端的系统资源,并且提供更好的客户体验。

1.创建正则表达式

1.1 new运算符

var box = new RegExp('Box');   //RegExp类表示正则表达式 括号里的第一个参数是字符串
alert(box);                    //输出结果为/Box/ 两个斜杠是正则表达式的字面量表示法


var box = new RegExp('Box','g');       //括号里第二个参数是可选的模式修饰符,有三种,i表示忽略大小写; g表示全局匹配; m表示多行匹配
alert(box);


1.2 字面量方式

var box = /Box/;    //使用字面量方法创建正则表达式
alert(box);            //仍然输出/Box/
var box = /Box/g;         //使用了模式修饰符
alert(box);


2. 测试正则表达式

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

test()方法在字符串中查找是否存在制定的正则表达式并返回布尔值。存在返回true,不存在返回false.

exec()方法也是查找指定的正则表达式,如果方法执行成功,则返回包含该查找字符串的相关信息数组。如果执行失败,返回null.


test()用法如下:

用new运算符表示:

var pattern = new RegExp('Box');    //创建正则表达式(模式)
var str = 'box';                    //创建字符串
alert(pattern.text(str));           //返回false,因为大小写不匹配


var pattern = new RegExp('Box','i');    //忽略大小写
var str = 'box';
alert(pattern.test(str));               //返回true,模式修饰符i可忽略大小写


用字面量方法表示:

var pattern = /Box/i;     //字面量方法创建正则表达式
var str = 'box';
alert(pattern.test(str));


可以用一句话来代表这三行代码:

alert(/Box/i.test('box'));   //返回true


这里有一个疑问,单纯的比较两个字符串是否相等完全可以用如下代码来判断:

var str1 = 'box';
var str2 = 'box';
alert(str1 == str2);

那么为什么要用正则表达式呢?再看下面代码:

var pattern = /Box/i;          
var str = 'This is a box';	//一句英文
alert(pattern.test(str));	//字符串中是否包含模式中的正则表达式,This is a box中是否包含不区分大小写的Box,正则表达式更多的				//是一种包含关系


exec()用法如下:

var pattern = /Box/i;		
var str = 'box';
alert(pattern.exec(str));	//返回的是数组,有就返回数组的值,这里为box,数据类型是object,没有则返回null
alert(typeof pattern.exec(str));	//返回object  用typeof来输出数据类型

var pattern = /Box/i;
var str = 'apple';
alert(pattern.exec(str));	//不匹配,返回null







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值