正则表达式

一、正则表达式
正则表达式是一个对象,功能和字符串一样,都是用来对字符串进行【模式匹配】和【文本检索】与【替换】。
正则表达式能替代字符串去做一些复杂的操作,而且做的比字符串还要漂亮。
二、正则表达式的声明
1)、通过new运算符声明
第一个参数 传入的是生成正则表达式的字符串
第二个参数 传入修饰符
i 忽略大小写
g 全局匹配
m 换行匹配

		var box = new RegExp("box", "ig");
		alert(box); 

2)、省略new

			var box = RegExp("box", "ig");
			alert(box);

3)、可以通过正则常量赋值

		var box = /box/ig;

2、正则表达式的方法
1)、test
格式:正则.test(字符串)
功能:在字符串中匹配正则是否存在。
返回值:如果匹配成功返回true,否则返回false
例:

			var str = 'This is Box';
			var box = /box/;
			alert(box.test(str)); 

运行结果:false

2)、exec
格式:正则.exec(字符串)
功能:在字符串中匹配正则是否存在。
返回值:如果匹配成功,返回匹配成功字符串的数组,
如果匹配失败返回null。

		var str = 'This is Box';
		var box = /box/i;
		alert(box.exec(str));

运行结果: Box ;

三、在字符串中的函数中使用正则表达式
1、match()
格式:字符串.match(正则)
功能:在字符串中匹配正则是否存在。
返回值:如果匹配成功,返回匹配成功字符串的数组,
如果匹配失败返回null。

		/*var str = 'This is a Box';
		var box = /box/i;

		alert(str.match(box));

运行结果:Box

2、repalce() 字符串替换
格式:str.replace(oldStr/正则, newStr);
返回值:替换完成的新字符串。

		var str = "how are are aRe you";
		var box = /are/gi;
		var newStr = str.replace(box, "old are");
		alert(newStr)

运行结果:how old are old are old are you

3、search()
格式:字符串.search(正则);
返回值:查找到的下标
-1 没有查找到

		var str = "how aRe are are aRe you";
		var box = /are/i;
		alert(str.search(box));

运行结果:4

4、 split()
功能:字符串.split(分割符/正则)
返回值:数组,放着用分割符分割完毕的子串。

		var str = "IAamABoy";
		var arr = str.split(/A/i);
		alert(arr);

运行结果:I,m,Boy

四、正则的例子
1、检查邮政编码

    var box = /[1-9]\d{5}/;
	alert(box.test(266000));

运行结果: true

2、检查文件压缩包

     var box = /\w+\.zip|rar|rg/;
	 alert(box.test("1aewf.zip")); 

运行结果: true
【注】如果你要在正则中用元字符本来的字符,需要通过转义字符,转义一下。

3、匹配单个的中文

    var box = /^[\u4e00-\u9fa5]$/;
	alert(box.test("1"))

运行结果:false

4、删除多余空格

		var str = "hello       world";
		alert(str.replace(/\s/g, ""));

运行结果:helloworld
【注】删除多余空格必须要全局匹配

5、删除首尾空格

		var str = "      hello  world   ";
		var newStr1 = str.replace(/^\s+/g, '');
		var newStr2 = newStr1.replace(/\s+$/g, "")
		alert("|" + newStr1 + "|");
		alert("|" + newStr2 + "|");

运行结果: |hello world |
|hello world|
【注】删除首尾空格时,也要全局匹配;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值