JS中正则表达式

正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。简单来说正则表达式就是处理字符串的,我们可以用它来处理一些复杂的字符串。

创建方式

var reg = new RegExp(pattern,modifiers);  //构造函数创建方式,pattern 和 modifiers 均为字符串,
var reg = /pattern/modifiers;    // 字面量创建方式

pattern(模式):描述了表达式的模式

modifiers(修饰符) :用于指定不区分大小写、全局匹配和多行匹配(i、g、m),当没有时默认为区分大小写只匹配第一个

字面量创建方式和构造函数创建方式的区别

1、字面量创建方式不能进行字符串拼接,实例创建方式可以

 

var regParam = 'cm';
var reg1 = new RegExp(regParam+'1');
var reg2 = /regParam/;
console.log(reg1);  //   /cm1/
console.log(reg2);  //  /regParam/

2、字面量创建方式特殊含义的字符不需要转义,实例创建方式需要转义

var reg1 = new RegExp('d');   //    /d/ 
var reg2 = new RegExp('\\d')  //   /\d/
var reg3 = /\d/;              //  /\d/

修饰符

i:不区分大小写

var str = "Visit RUnoob";
var patt1 = /runoob/;
var patt2 = /runoob/i;
console.log(patt1.test(str))   //false
console.log(patt2.test(str))   //true

g:全局匹配,(即查找所有匹配而非在找到第一个匹配后停止)

var str="Is this all there is?";
var patt1=/is/g;
console.log( str.match(patt1) );   // ["is", "is"]

m:执行多行匹配。多行匹配在需要匹配的字符串里有换行符时凸显出它的意义。如果没有用多行匹配,那么不管多少换行符,该字符串就只视为一行,只有一对头和尾。如果使用了多行匹配,那么每一行就都有一对头和尾,使用 ^ 和 $ 进行匹配时结果就不一样。

var str="This is an\n antzone good"; 
var reg=/an$/;
var reg2=/an$/m;
console.log( reg.test(str) );     //false
console.log( reg2.test(str) );   //true

var str2="This is an\n antzone good  an"; 
var reg3 = /an$/mg;
console.log( str2.match(reg3) );     // ["an", "an"]

元字符:  http://www.runoob.com/jsref/jsref-obj-regexp.html

\d : 0-9之间的任意一个数字  \d只占一个位置
\w : 数字,字母 ,下划线 0-9 a-z A-Z _
\s : 空格或者空白等
\D : 除了\d
\W : 除了\w
\S : 除了\s
 . : 除了\n之外的任意一个字符
 \ : 转义字符
 | : 或者
() : 分组
\n : 匹配换行符
\b : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数
 ^ : 限定开始位置 => 本身不占位置
 $ : 限定结束位置 => 本身不占位置
[a-z] : 任意字母 []中的表示任意一个都可以
[^a-z] : 非字母 []中^代表除了
[abc] : abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符

 

\s : 空格或者空白等 \D : 除了\d \W : 除了\w \S : 除了\s . : 除了\n之外的任意一个字符 \ : 转义字符 | : 或者 () : 分组 \n : 匹配换行符 \b : 匹配边界 字符串的开头和结尾 空格的两边都是边界 => 不占用字符串位数 ^ : 限定开始位置 => 本身不占位置 $ : 限定结束位置 => 本身不占位置 [a-z] : 任意字母 []中的表示任意一个都可以 [^a-z] : 非字母 []中^代表除了 [abc] : abc三个字母中的任何一个 [^abc]除了这三个字母中的任何一个字符

猜你喜欢

转载自www.cnblogs.com/wenxuehai/p/10324317.html