正则 (声明/方法/元字符)

正则就是炒鸡字符串,可以用来做表单验证。

声明正则表达式

  1. 通过new运算符声明
  2. 省略new创建正则表达式
  3. 可以通过正则常量赋值
    i 忽略大小写
    g 全局匹配
    m 换行匹配
var box = new RegExp("box", 'ig');
alert(box); ///box/gi
var box = RegExp("box", 'ig');
alert(box); ///box/gi
var box = /box/ig;
alert(box);

正则对象的方法

test()
格式:正则.test(字符串);
功能:在字符串中匹配正则是否存在。
返回值:如果匹配成功,返回true,否则返回false

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

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

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

在字符串中可以使用正则表达式的方法

			match
				格式:字符串.match(正则)
				功能:在字符串中匹配正则是否存在。
				返回值:匹配成功,返回数组,装有匹配到的字符串
					    匹配失败,返回null
var str = "This is a box Box";
alert(str.match(/box/ig));//box,Box
			replace
				格式:字符串.replace(oldStr/正则, newStr);
				功能:用newStr字符串替换oldStr,返回一个新字符串。
				返回值:原字符串不会被修改,返回替换成功以后的新字符串。
var str = 'This is a box Box';
var newStr = str.replace(/box/ig, "xxx");
alert(newStr);//This is a xxx xxx
			search
				格式:字符串.search(字符串/正则);
				功能:查找子字符串在字符串中第一次出现的位置。
				返回值:如果找不到返回-1,否则返回出现的位置。
var str = "This is a Box box";
alert(str.search(/box/i));//10
			split
				格式:字符串.split(分割符/正则);
				功能:用分割符将字符串,分割成子串,放在数组中
				返回值:数组
var str = "This is a Box box";
// alert(str.split(" "));//This,is,a,Box,box
alert(str.split("b"));//This is a Box ,ox
alert(str.split(/b/i));//This is a ,ox ,ox

元字符

单个元字符

. 匹配任意一个字符
[a-z] 限定匹配一个小写字母
[a-zA-Z0-9_] 限定匹配一个字符,必须是数字、字母下划线
[^a-zA-Z0-9_] 匹配一个字符,这个字符不能是前面这个范围的字符。
\w 等价于 [a-zA-Z0-9_]
\W 等价于 [^a-zA-Z0-9_]
\d 等价于 [0-9]
\D 等价于 [^0-9]
\s 匹配一切单个的空白字符 tab 空格 回车(\n)
\S 匹配单个非空白字符

锚字符

^ 限定行首匹配
$ 限定行尾匹配

重复字符:

x? 匹配一个或者0个x字符。
x+ 匹配至少一个x字符。
x* 匹配任意个x字符
x{m,n} 匹配至少m个最多n个字符
x{m}匹配m个字符
(xyz)+ 小括号括起来的部分,当做单个字符匹配

替代字符

| 匹配其中一项就行。

正则练习题(看看思路)

验证是否是正确的邮政编码的正则

var box = /^[1-9]\d{5}$/;
var str = "266011";
alert(box.test(str));

判断一个文件是否是压缩包

var box = /^\w+\.(zip|rar|rg)$/i;
var str = '123abc.zip';
alert(box.test(str));

删除多余的空格

var str = " h e l  l o ";
var box = /\s/g;
alert(str.replace(box, ""));

删除首尾的空格

var str = " h e l  l o ";
var box = /^\s+|\s+$/g;
alert("|" + str.replace(box, "") + "|");

普通版本的电子邮箱验证

var box = /^\w+@\w+\.\w{2,5}$/ig;
var str = "tianyufei@1000phone.net";
alert(box.test(str));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值