正则表达式详解
什么是正则?正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法,有点像字符串的模板,常常用来按照“给定模式”匹配文本。比如,正则表达式给出一个 Email 地址的模式,然后用它来确定一个字符串是否为 Email 地址。JavaScript 的正则表达式体系是参照 Perl 5 建立的。 建立正则表达式使用内置RegExp构造函数var reg=new RegExp("martin");
直接建立var reg=/martin/;
以上两种建立正则的方式是等效的,,不过一般第二种方式用的更多一些。 ? 接受参数正则表达式除了接受一个字面量字符参数,还可以接受一个修饰符作为参数。 ? var reg=/martin/g //var reg=new RegExp("martin","g");
? 说完基本的正则概念和接受参数,接下来说一下正则的匹配规则,这一块也是面试和笔试考察的重点。 ? 匹配规则在说匹配规则之前我们先说一下正则中的字符分类。 字面量字符和元字符字面量字符:只表示它字面的含义,就像上面代码中的martin,也就是实际用于匹配的字符。 元字符:不代表字符本身字面的意思,而是有特殊含义的字符,也就是帮助字面量字符达到更好的匹配效果的辅助字符。 ? 其中元字符又分为很多类,具体类型如下: ?
?
? var reg=/1.3/; //表示匹配1和3之间包含任意一个字符的情况,除特殊符外,如:"1-3","1.3","123"等; //但是一个点只能匹配一个字符,如:"1223"则无法匹配成功
?
? var reg=/^13/; //表示以"13"字符串开头的字符串 reg.test("134") //true var reg=/13$/; //表示以"13"字符串结束的字符串 reg.test("134") //false reg.test("4 31") //true var reg=/^13$/; //注意:表示从开始到结束位置只有"13"这个字符串 reg.test("13") //true reg.test("1313") //false
? 注意:? ?
? var reg=/11|22||33/; //表示匹配"11"或者"22"或者"33" reg.test("11") //true reg.test("22") //true
注意:选择符会匹配包括它前后的多个字符,比如? ? var reg=/1(1|2)2/; reg.test("112") //true reg.test("122") //true
? 转义字符如果要在正则表达式中使用具有特殊含义的字符,如:$,^等,也就是如果要匹配它们本身,那就需要用到转义字符了,也就是在他们前面加上""反斜杠,比如要匹配$,则写成$。 正则表达式中,需要反斜杠转义的,一共有12个字符: . ? var reg=/1$/; //表示匹配字符串"1$",而不是以1结尾的字符串 reg.test("1") //false reg.test("1$") //true
? 特殊字符正则表达式对一些不能打印的特殊字符,提供了表达方法。
|