正则总结

1.创建正则表达式的两种方式:
一, var box=new RegExp("box");
 var box=new RegExp("box","ig");      //第一个参数是模式字符串 ,  第二个参数是模式修饰符 i(忽略大小写)  g(全局匹配)   m(多行匹配)
alert(box);                          //   /box/
二,
var box=/box/i ;                 //字面量方式创建正则,常用的方式
两种方法
test()方法  返回true or false

exec方法()返回查找的结果数组,如果匹配不到返回null
三,
var pattern =new RegExp('Box');
var str='box';
pattern.test(str);
四 使用字符串的正则表达式的方法
//match方法
var pattern=/Box/ig;
var str="this is a Box! that is a Box!"
str.match(pattern);   //返回的是匹配的数组
//search 查找匹配的位置
var pattern=/Box/i;
var str="this is a Box! that is a Box!"
str.search(pattern);   //返回的是第一个匹配的位置 找不到返回-1
//replace替换匹配的数据
var pattern=/Box/i; (g)           //没有开启全局
var str="this is a Box! that is a Box!"
str.replace(pattern,‘tom’);   //返回替换后的字符串,只限第一个

//拆分成字符串为数组
var pattern=/!/ig;
var str="this is a Box! that is a Box!"
str.split(pattern);   //按照感叹号划分为三个数组,后面有一个空数组
五,正则表达式的静态属性和实例属性
静态属性(支持度不好)
var pattern=/google/i;
var str="this is a google!"
pattern.test(str);    //必须执行一次,静态属性才有效
RegExp.input;     //当前被匹配的字符串
RegExp.leftContext;//匹配到的字符的前字串
RegExp.rightContext;//匹配到的字符的后字串
RegExp.lastMatch;
( lastParen 最后一对圆括号里面的字符串
multiline  用于指定是否所有的表达式都用于多行的标准 //支持度很不好,看看是否支持多行
)
实例属性
RegExp.global ignoreCase  multiline  source  lastIndext(整数 代表下次匹配将从哪里开始匹配)
{n, m} 匹配前一项至少n次,但是不能超过m次 n<=pattern<=m
{n, } 匹配前一项n次,或者多次  pattern>=n
{n} 匹配前一项恰好n次 pattern=n
? 匹配前一项0次或1次,也就是说前一项是可选的. 等价于 {0, 1} patttern=0||pattern=1
+ 匹配前一项1次或多次,等价于{1,} pattern>=1
* 匹配前一项0次或多次.等价于{0,} pattern>=0

字符 匹配 
____________________________________________________ 
[...] 位于括号之内的任意字符 
[^...] 不在括号之中的任意字符 
. 除了换行符之外的任意字符,等价于[^\n] 
\w 任何单字字符, 等价于[a-zA-Z0-9] 
\W 任何非单字字符,等价于[^a-zA-Z0-9] 
\s 任何空白符,等价于[\ t \ n \ r \ f \ v] 
\S 任何非空白符,等价于[^\ t \ n \ r \ f \ v] 
\d 任何数字,等价于[0-9] 
\D 除了数字之外的任何字符,等价于[^0-9] 
[\b] 一个退格直接量(特例) 
字母数字字符 自身 
\ f 换页符 
\ n 换行符 
\ r 回车 
\ t 制表符  
\b 匹配一个单词的边界
\B 匹配一个单词的非边界
____________________________
对象的属性
constructor 创建一个对象的一个特殊的函数原型
global 是否在整个串中匹配(bool型)
ignoreCase 匹配时是否忽略大小写(bool型)
input 被匹配的串
lastIndex 最后一次匹配的索引
lastParen 最后一个括号括起来的子串
leftContext 最近一次匹配以左的子串
multiline 是否进行多行匹配(bool型)
prototype 允许附加属性给对象
rightContext 最近一次匹配以右的子串
source 正则表达式模式
lastIndex 最后一次匹配的索引
正则表达式对象的方法 
方法 含义
compile 正则表达式比较
exec 执行查找
test 进行匹配
toSource 返回特定对象的定义(literal representing),其值可用来创建一个新的对象。重载Object.toSource方法得到的。
toString 返回特定对象的串。重载Object.toString方法得到的。
valueOf 返回特定对象的原始值。重载Object.valueOf方法得到

var pattern=/^[0-9]oogle/;    //以数字开头的,如果^在中括号里面[^] 表示的是除了中括号中的字符,代表的是非
var str='4444oogle';
alert(pattern.test(str));   
var pattern=/google|baidu|bing/;//|竖线表示或选择的问题
var str='baidu';也是可以匹配的
一  使用分组类匹配
var pattern=/google{4,8}$/;
var str='googleeeee';
分组可以看成一个字符
var pattern=/(google){4,8}$/;
var str='googleeeee';匹配不了的
1.
var pattern=/8(.*)8/;
var str='This is a 8google8 ';
pattern.test(str);
alert(RegExp.$1);       //RegExp.$1表示获取模式中第一个分组对应的字符串
2,
var pattern=/(.*)\s(.*)/;
var str='baidu google';
alert(str.replace(pattern,'$2 $1'));  //位置交换
3
var pattern=/(\d+)([a-z])/;
var str='123abc';
var a=pattern.exec(str);
alert(pattern.exec(str));                                                    //a[0] 得到的是匹配到的整个字符串
                                                                                          //a[1] 得到的匹配到的第一个分组的字符串
                                                                                         //a[1]  得到的匹配到的第二个分组的字符串

















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值