JS中的正则

参考个人博客:http://www.zhuzhuman.com/nav-1/type-1/article/18.html

正则可以规定在文本或字符串中要检索或替换的内容,可以是表达式的形式。然后可以在文本或字符串中匹配自己给定好的内容。

1. JS中的正则表达式写法

1. var reg = new RegExp('表达式',flag);
2. var reg = /表达式/flag;

注:
	flag:修饰符,修饰符可以同时写多个。
		1. i : 忽略大小写;
		2. g : 全局匹配;
		3. m : 多行匹配;  

###2. 正则中字符的含义###
. : 任意字符(除换行符外);
\d : 数字0-9;
\D : 非数字0-9的字符;
\w : 0-9或a-z或A-Z或_ ;
\W : 除数字字母下划线以外的字符;
\s : 空格、TAB、换页符、换行符;
\S : 非\s;
\r : 回车;
\n : 换行;
\v : 垂直制表符;
\t : 制表符;
\f : 换页符;

3. 正则中的选择、分组

1.  | : 选择(或); 例:/ab|cd/ 表示匹配ab或者cd,只要一个匹配就能匹配成功;
2.   () : 分组;正则中的(),先正常匹配,然后把匹配到的值以括号为单位分组;返回值里面会以括号为单位进行分组后以数组形式返回。可以用下标取到里面对应的值;
	例:
	var str = 'aabbccdd';
	
	var reg1 = /(aa)(bb)/ ;
	str.match(reg1); // ['aabb','aa','bb']; 不仅匹配到了aabb还把两个括号中匹配到的值分别显示了出来。 
	
	var reg2 = /aa(bb)/;

	var reg3 = /(a+)(b)+(c)+/;
	str.match(reg3); // ['aabbcc','aa','b','c']
	
	var reg4 = /(a)(b)(c)/;
	str.match(reg4); // null,没匹配到'abc',也不会分组;

4. 正则中的范围符号

[] : 字符范围内; 例:[0-9]数字0-9;[a-n]小写字母a到n;[0-9A-Za-z]数字0-9小写a-z大写A-Z;
[^] : 字符范围外;例:[^0-9]数字0-9以外的字符;
^ : 行首(书写时写在开头);例:^Hi以Hi开头的字符;^[0-9]以数字0-9开头的字符;^[^0-9]以非数字开头的字符;
$ : 行尾(书写时写在最后);例: Hi$以Hi结尾的字符;
\b : 单词边界;例:\bhello匹配前面有空格的单词hello;
\B : 非\b;例:\Bhello匹配前面没有空格的单词hello;
[\u4e00-\u9fa5] : 匹配中文;

5. 正则中的量词

{n,m} : 最少出现n次,最多出现m次;
{n,} : 最少出现n次;
{,m} : 最少出现0次(既没有),最多出现m次;
{n} : 刚好出现n次;
? : 代表{0,1};
* : 代表{0,};
+ : 代表{1,};

例:/a{5}/ 表示正好连续出现5个小写a的字符;

6. 正则中的字符串转译

\ : 用于转译字符;(即通常在"\"后面的字符不按原来意义解释)

	有时候我们匹配一些特殊的字符时,比如:.,\,/,^,$,+,?,|,(,[,),{,],}等有特殊含义的字符时,需要加上\进行转译,将其转译为单纯的一个字符	。
	例:当我们要匹配一个美元符$时,不能直接写$,因为一个$代表行尾,所以要用\$;这代表单纯匹配一个美元符。

7. 正则常用的函数

1. search();返回首次匹配到的值的下标。
	str.search(reg); 
2. match();返回首次匹配的值,若正则表达式里面有用g声明全局匹配,则返回所有满足匹配条件的值。返回值是一个数组。
	str.match(reg);	返回值是一个数组	
	var a = 'aabcfa';
	var reg1 = /a/;
	var reg2 = /a/g;
	a.match(reg1); // ['a'];
	a,match(reg2); // ['a','a','a'];
3. replace(正则,替换内容);替换首次匹配到的值,若正则声明全局匹配,则替换所有匹配到的值;
	var a = 'aabbcca';
	var reg1 = /a/;
	var reg2 = /a/g;
	a.replace(reg1,'b'); // babbcca;
	a.replace(reg2,'b'); // bbbbccb;
4. test();用于检测能否匹配到值,返回值为布尔值,匹配到为true;否则为false;
	
	注: 使用方法是正则写在前面,字符串写括号里
		reg.test(str); 
		
	var a = 'abc';
	var reg1 = /a/;
	var reg2 = /d/;
	reg1.test(a); // true;
	reg2.test(a); // false;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值