javascript 正则表达式
1.使用RegExp对象:
var cat=new RegExp("字符串","额外指令")
正则表达式:/字符串模式/额外的处理指令
该对象有test()方法:RegExp对象.test(需要测试的字符串),返回true或false;
exec()方法:RegExp对象.exec(需要测试的字符串),返回一个数组;
match()方法:需要测试的字符串.match(RegExp对象),返回满足的数组;
search()方法:需要测试的字符串.search(RegExp对象),返回第一个出现匹配的字符串的首字母的位置。
function add() { // var hen = ["cat","cats","catsf","catdfd"]; //var rehen = /cathd/; var rehen = new RegExp("cats"); // alert(rehen.test(hen)); //true var hen = "cat,cats,catsfg"; //var ass = hen.match(rehen); var ass = hen.search(rehen); alert(ass); //4 }
2.Replace()
字符串.repalce(参数一,参数二):参数一被参数二替换。 参数一为字符串或正则表达式(对字符串对象测试满足的字符串统一替换,如/red/g表达式),参数二为字符串或函数。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 function Sreplace() { 2 3 var shs = "asa,ijiansa,asdssa"; 4 var yl = shs; 5 var zz = /sa/g; 6 var hl= shs.replace(zz, function () { 7 return "lll"; 8 }); 9 10 alert("原来:"+yl+"后来:"+hl); 11 12 }
3.split(),将字符串分割成一系列字符串,并通过一个数组返回。
4.正则表达式用到的元字符:([{\^$|)?*+.。 当使用这些元字符的时候,必须进行转义,如 匹配一个问号:var reg=/\?/ (转义问号)或 var reg=new RegExp("\\?")(转义问号和反斜杠)双重转义。删除字符串中所有的换行符(常用于处理用户输入的文本) var str=stringwith.replace(/\n/g,"")
5.字符类:
①:简单类:/[abc]at/gi 不区分大小写,字符串对象中所有的满足aat,bat,cat的字符串,字符串对象.match(正则) 返回字符串数组。
②:负向类:/^[bc]at/gi 不区分大小写,满足不以b或c开头的,即bat,cat字符串。
③:范围类:/m[a-z]/gi 不区分大小写,满足ma/A或mb/B...mz/Z的字符串。负向类写法:/m[^a-z]/gi,排除ma/A和mb/B....mz/Z的字符串
④:组合类:以上三种的组合,如/a-m1-4\n/ 匹配所有从a-m的字母以及从1-4的数字以及一个换行符,是且的关系。不支持联合类和交叉类,如/a-m[p-z]/或/a-m[^b-e]/
⑤:预定义类:如:\d 匹配数字。var sz="532 623 123 sskf" 匹配三个数字:/\d\d\d/
6.量词:
①:简单量词:? 出现零次或一次,* 出现任意次,+至少出现一次,{n}至少出现n次,{n,m}至少n次,至多m次,{n,}至少n次
如:/b?re?d/ 或/b{0,1}re{0,1}d/ 即b出现零或一次,跟着r,跟着e出现零或一次,跟着d。 匹配单词:bred,brd,rd,red