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

  • Post author:
  • Post category:其他


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



声明正则表达式

  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));



版权声明:本文为weixin_44602489原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。