JavaScript正则表达式

更新时间:2023-07-07 21:20:47 阅读: 评论:0

net正则表达式和javascript正则表达式还是有一点点区别,javascript采用的是perl语法而是用的C#语法,这两点一定要分清.
JavaScript,正则表达式是由一个RegExpvalueless对象表示的.当然,可以使用一个RegExp()构造函数来创建RegExp对象,也可以用JavaScript 1.2中的新添加的一个特殊语法来创建,RegExp对象.就像字符串直接量被定义为包含在引号内的字符一样,正则表达式直接量也被定义为包含在一对斜杠(/)之间的字符.所以,JavaScript可能会包含如下的代码:var pattern = /s$/;这行代码创建一个新的RegExp对象,并将它赋给变量parttern.这个特殊的RegExp对象和所有以字母"s"结尾的字符串都匹配.RegExp()也可以定义一个等价的正则表达式,代码如下:
var pattern = new RegExp("s$");
无论是用正则表达式直接量还是用构造函数RegExp(),创建一个RegExp对象都是比较容易的.较为困难的任务是用正则表达式语法来描述字符的模式.
正则表达式的模式规范是由一系列字符构成的.大多数字符(包括所有字母数字字符)描述的都是按照字面意思进行匹配的字符.这样说来,正则表达式/java/就和所有包含子串 "java" 的字符串相匹配.虽然正则表达式中的其它字符不是按照字面意思进行匹配的,但它们都具有特殊的意义.正则表达式 /s$/ 包含两个字符.第一个特殊字符 "s" 是按照字面意思与自身相匹配.第二
个字符 "$" 是一个特殊字符,它所匹配的是字符串的结尾.所以正则表达式 /s$/ 匹配的就是以字母 "s" 结尾的字符串.
1.直接量字符
我们已经发现了,在正则表达式中所有的字母字符和数字都是按照字面意思与自身相匹配的.JavaScript的正则表达式还通过以反斜杠(\)开头的转义序列支持某些非字母字符.例如,序列 "\n" 在字符串中匹配的是一个直接量换行符.在正则表达式中,许多标点符号都有特殊的含义.下面是这些字符和它们的含义:
正则表达式的直接量字符
字符                                  匹配
as i moved on________________________________
字母数字字符                      自身
\ f                                      换页符
\ n                                      换行符
\ r                                      回车
\ t                                      制表符
\ v                                      垂直制表符
\ /                                      六级考试时间2014一个 / 直接量
\ \                                      一个 \ 直接量
\ .                                      思忖一个 . 直接量
\ *                                      一个 * 直接量
\ +                                      一个 + 直接量
\ ?                                      一个 ? 直接量
\ |                                        一个 | 直接量
\ (                                        一个 ( 直接量
\ )                                        一个 ) 直接量
\ [                                        一个 [ 直接量
\ ]                                        一个 ] 直接量
\ {                                        一个 { 直接量
\ }                                        一个 } 直接量
\ XXX                                    由十进制数 XXX 定的ASCII码字符
\ Xnn                                    由十六进制数 nn 指定的ASCII码字符
\ cX                                      控制字符^X. 例如, \cI等价于mp3批量下载 \t, \cJ等价于 \n
如果想在正则表达式中使用特殊的标点符号,必须在它们之前加上一个 "\"
2.字符类
将单独的直接符放进中括号内就可以组合成字符类.一个字符类和它所包含的任何一个字符都匹配,所以正则表达式 / [abc] / 和字母 "a" , "b" , "c" 中的任何一个都匹配.另外还可以定义否定字符类,英语四级口语考试报名这些类匹配的是除那些包含在中括号之内的字符外的所有字符.定义否定字符时,要将一个 ^ 符号作为从左中括号算起的第一个字符.正则表达式的集合是 / [^a-zA-z0-9] /
由于某些字符类非常常用,所以JavaScript的正则表达式语法包含一些特殊字符和转义序列来表示这些常用的类.例如,  \s 匹配的是空格符,制表符和其它空白符, \s匹配的则是空白符之外的任何字符.
正则表灰式的字符类
字符                                          匹配
____________________________________________________
[...]                                          位于括号之内的任意字符
[^...]                                        不在括号之中的任意字符
.                                                除了换行符之外的任意字符,等价于[^\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                                              lanbo除了数字之外的任何字符,等价于[^0-9]
[\b]                                            一个退格直接量(特例)
3.复制
用以上的正则表式的语法,可以把两位数描述成  / \ d \ d /,把四位数描述成 / \d \ d \ d \ d /.但我们还没有一种方法可以用来描述具有任意多数位的数字或者是一个字符串.这个串由三个字符以及跟随在字母之后的一位数字构成.这些复杂的模式使用的正则表达式语法指定了该表达式中每个元素要重复出现的次数.指定复制的字符总是出现在它们所作用的模式后面.
于某种复制类型相当常用.所以有一些特殊的字符专门用于表示它们.例如: +号匹配的就是复制前一模式一次或多次的模式.下面的表列出了复制语法.先看一个例子:
/\d{2, 4}/                                  //匹配24间的数字
/\w{3} \d?/                              //匹配三个单字字符和一个任意的数字.
/\s+java\s+/                            //匹配字符串"java" ,并且该串前后可以有一个或多个空格.
/[^"] * /                                  //匹配零个或多个非引号字符
正则表达式的复制字符
字符                                          含义
__________________________________________________________________
{n, m}                                      匹配前一项至少n,但是不能超过m
{n, }                                          匹配前一项n,或者多次
{n}                                            匹配前一项恰好n
?                                              匹配前一项0次或裙带关系英文1,也就是说前一项是可选的. 等价于 {0, 1}
+                                              匹配前一项1次或多次,等价于{1,}
*                                              匹配前一项0nikita第四季次或多次.等价于{0,}
多喝两杯再说,呵呵
4.选择,分组和引用
正则表达式的语法还包括指定选择项,对子表达式分组和引用前一子表达式的特殊字符.字符| 用于分隔供选择的字符.例如: /ab|cd|ef/ 匹配的是字符串 "ab",或者是字符串 "cd",又或者 "ef". /\d{3}|[a-z]{4}/ 匹配的是要么是一个三位数,要么是四个小写字母.6年级上册英语在正则表达式中括号具有几种作用.它的主要作用是把单独的项目分组成子表达式,以便可以像处理一个独立的单
元那种用 *+? 来处理那些项目.例如: /java(script) ?/ 匹配的是字符串 "java",其后既可以有 "script",也可以没有. / (ab|cd) + |ef) / 匹配的既可以是字符串 "ef",也可以是字符串"ab" 或者 "cd" 的一次或多次重复

本文发布于:2023-07-07 21:20:47,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/170334.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字符   语法   匹配   包含   表达式   字母
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图