资源描述:
《js中的正则表达式应用总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JavaScript中的正则表达式解析http://www.webjx.com 更新日期:2005-10-2207:20 出处: 作者: 正则表达式是一个描述字符模式的对象。 JavaScript的RegExp对象和String对象定义了使用正则表达式来执行强大的模式匹配和文本检索与替换函数的方法. 在JavaScript中,正则表达式是由一个RegExp对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp对象,也可以用JavaScript1.2中的新添加的一个特殊语法来创建RegExp对象.就像字符串直接量被定义为包含在引号内
2、的字符一样,正则表达式直接量也被定义为包含在一对斜杠(/)之间的字符.所以,JavaScript可能会包含如下的代码:varpattern=/s$/; 这行代码创建一个新的RegExp对象,并将它赋给变量parttern.这个特殊的RegExp对象和所有以字母"s"结尾的字符串都匹配.用RegExp()也可以定义一个等价的正则表达式,代码如下:varpattern=newRegExp("s$"); 无论是用正则表达式直接量还是用构造函数RegExp(),创建一个RegExp对象都是比较容易的.较为困难的任务是用正则表达式语法来描述字符的模式.Java
3、Script采用的是Perl语言正则表达式语法的一个相当完整的子集. 正则表达式的模式规范是由一系列字符构成的.大多数字符(包括所有字母数字字符)描述的都是按照字面意思进行匹配的字符.这样说来,正则表达式/java/就和所有包含子串"java"的字符串相匹配.虽然正则表达式中的其它字符不是按照字面意思进行匹配的,但它们都具有特殊的意义.正则表达式/s$/包含两个字符. 第一个特殊字符"s"是按照字面意思与自身相匹配.第二个字符"$"是一个特殊字符,它所匹配的是字符串的结尾.所以正则表达式/s$/匹配的就是以字母"s"结尾的字符串. 1.直接量字符
4、 我们已经发现了,在正则表达式中所有的字母字符和数字都是按照字面意思与自身相匹配的.JavaScript的正则表达式还通过以反斜杠()开头的转义序列支持某些非 字母字符.例如,序列""在字符串中匹配的是一个直接量换行符.在正则表达式中,许多标点符号都有特殊的含义.下面是这些字符和它们的含义: 正则表达式的直接量字符字符匹配________________________________字母数字字符自身f换页符换行符r回车t制表符v垂直制表符/一个/直接量\一个直接量.一个.直接量*一个*直接量+一个+直接量?一个?直接
5、量
6、一个
7、直接量(一个(直接量)一个)直接量[一个[直接量]一个]直接量{一个{直接量}一个}直接量XXX由十进制数XXX指定的ASCII码字符Xnn由十六进制数nn指定的ASCII码字符cX控制字符^X.例如,cI等价于t,cJ等价于___________________________________________________如果想在正则表达式中使用特殊的标点符号,必须在它们之前加上一个"". 2.字符类 将单独的直接符放进中括号内就可以组合成字符类.一个字符类和它所包含的任何一个字符都匹配,所以正则表达式/
8、[abc]/和字母"a","b","c"中的任何一个都匹配.另外还可以定义否定字符类,这些类匹配的是除那些包含在中括号之内的字符外的所有字符.定义否定字符尖时,要将一个^符号作为从左中括号算起的第一个字符.正则表达式的集合是/[a-zA-z0-9]/. 由于某些字符类非常常用,所以JavaScript的正则表达式语法包含一些特殊字符和转义序列来表示这些常用的类.例如,s匹配的是空格符,制表符和其它空白符,s匹配的则是空白符之外的任何字符. 正则表灰式的字符类字符匹配_________________________________________
9、___________[...]位于括号之内的任意字符[^...]不在括号之中的任意字符.除了换行符之外的任意字符,等价于[^]w任何单字字符,等价于[a-zA-Z0-9]W任何非单字字符,等价于[^a-zA-Z0-9]s任何空白符,等价于[trfv]S任何非空白符,等价于[^trfv]d任何数字,等价于[0-9]D除了数字之外的任何字符,等价于[^0-9][b]一个退格直接量(特例)________________________________________________________________
10、 3.复制 用以上的正则表式的语法,可以把两位数描述成/dd/,把四位数描