正则表达式基础信息

一、基础信息

操作对象:字符串

写法:

var re = /正则表达式/;  (推荐写法)         因为直接写//会变成注释,如果没有表达式一般里面写一个a,例如:var re = /a/;  
var re = new RegExp('正则表达式');

输出特殊字符

不能输出特殊字符(' / 等) ,需要加 \ 转义,例如:var re = new RegExp('\\b'+sClass+'\\b');

传递参数

描述:当正则需要传参的时候,一定要用全称的写法

写法:var re = new RegExp(参数名);

 

二、字符含义

1、i —— 不区分大小写

描述:正则表达式默认区分大小写

不区分大小写的方法:在正则的最后加标识 i 

写法:

var re = /a/i;

var re = new RegExp('a','i');

2、g——找到所有匹配的字符

描述:正则表达式默认找到匹配的字符就停止查找

找到所有匹配字符的方法:在正则的最后加标识 g

写法:

var re = /a/g;

var re = new RegExp('a','g');

3、+ —— 至少出现一次

描述:如果不确定字符的数量,加上符号 + 就代表字符至少出现一次即可匹配,加在那个字符后面就是哪个字符可有多个

写法:

var re = /a+/;

var str = 'haj123sdk54hask33dkhalsd879';
var re = /\d+/g;  // \d代表数字,\d+代表1个,2个,3个……数字都可以匹配。g代表匹配所有的元素
alert( str.match(re) );   //123,54,33,879

 4、| ——或

描述:需要获取a或b或c

写法:var re = /a | b | c/;

var re = /菲称|中国船|监视之下/g;

5、^ —— 排除的意思

描述:如果^写在[]里面的话,就代表排除的意思。如果^在正则最开始的位置,就代表起始的意思

写法:

var re = /[^a]/    代表除了a以外的字符

var re = /^abc/   代表必须以a开始

var str = 'awc';
var re = /a[^bde]c/;   //字符串的第2位只要不是b、d、e就行
alert( re.test(str) );   //true

6、$ —— 以指定字符结束

描述:如果$在正则表达式最后的位置 , 就代表结束的意思

写法:var re = /abc$/    代表必须以c结束

7、? —— 字符出现0次或1次

写法:var re = /a?/;

8、* —— 字符至少出现0次

写法:var re = /a*/;

9、- —— 在指定范围内的字符都可以匹配 

描述:在指定范围内的字符都可以,可以是a-z、A-Z、0-9等

var re = /a[a-z0-9A-Z]c/;  //字符串的第二位字符是a-z或者0-9或者A-Z都可以

 

10、() —— 把正则表达式分组,分为一个个子项

描述:括号里作为一个整体进行操作,类似于算法里的括号,每一个括号代表正则表达式的一个子项

写法:var re = /(第一组)(第二组)/

var re = /(\d+)(-)/g;

11、[]——字符类  

描述:括号里有多个字符,字符之间的关系为或者的关系,[]里只代表一个元素,只要匹配了[]里的任意一个字符即可

写法:var re = /a[bde]c/

var str = 'abc';
var re = /a[bde]c/;   //字符串的第二位字符在[bde]里存在,是b是d是e都行,所以返回的是true
alert( re.test(str) );  //true

12、{}——某字符出现的次数

写法:

a{4,7} : a最少出现4次,最多出现7次
a{4,} : a最少出现4次
a{4} : a正好出现4次

 

三、转义字符

.  —— 任意字符

\. —— 真正的点

var str = 'abc';
var re = /a.c/; //第二位为任何字符都匹配
alert(re.test(str));  //true

\b —— 是否是独立的部分 ( 起始位置,结束位置,空格 )

\B —— 非独立的部分

var str = 'onetwo';
var re = /\bone/;  //判断字母o前面是否是独立字符
alert( re.test(str) );  //true,o前面没有东西了,所以是独立字符

var re = /one\b/;   //判断字母o后面是否是独立字符
alert( re.test(str) );  //false,e后面还有t,所以不是独立字符

\n —— 换行

\s —— 空格

\S —— 非空格

\d —— 数字

\D —— 非数字

\w —— 字符 ( 包括字母 ,数字,下划线“_” )

\W —— 非字符

\1 —— 重复第1个子项

\n —— 重复第n个子项

var str = 'abca';
var re = /(a)(b)(c)\2/;  //重复第二个子项(b),即b
alert( re.test(str) );  //false因为字符串的第四个字符是a,不是b
var str = 'ab';
var re = /\w\w/;  //alert( re.test(str) );返回true,因为第一个第二个字符都是字母
var re = /(\w)\1/; cc  //alert( re.test(str) );返回false,因为第一个字符是a,第二个字符不是a

  

posted @ 2017-11-27 17:04  念念念不忘  阅读(175)  评论(0)    收藏  举报