var pattern = /s$/;
这行代码创建一个新的
RegExp 对象,并将它赋给变量 parttern.这个特殊的 RegExp 对象和所有以字
母
"s"结尾的字符串都匹配.用 RegExp()也可以定义一个等价的正则表达式,代码如下:
var pattern = new RegExp("s$");
无论是用正则表达式直接量还是用构造函数
RegExp(),创建一个 RegExp 对象都是比较容易的.较为困
难的任务是用正则表达式语法来描述字符的模式
.
JavaScript 采用的是 Perl 语言正则表达式语法的一个相当完整的子集.
正则表达式的模式规范是由一系列字符构成的
.大多数字符(包括所有字母数字字符)描述的都是按照字
面意思进行匹配的字符
.这样说来,正则表达式/java/就和 所有包含子串 "java" 的字符串相匹配.虽然正则表
达式中的其它字符不是按照字面意思进行匹配的
,但它们都具有特殊的意义.正则表达式 /s$/ 包含两个字符.
第一个特殊字符
"s" 是按照字面意思与自身相匹配.第二个字符 "$" 是一个特殊字符,它所匹配的是字符
串的结尾
.所以正则表达式 /s$/ 匹配的就是以字母 "s" 结尾的字符串.
1.直接量字符
我们已经发现了
,在正则表达式中所有的字母字符和数字都是按照字面意思与自身相匹配的.JavaScript
的正则表达式还通过以反斜杠
(\)开头的转义序列支持某些非字母字符.例如,序列 "\n" 在字符串中匹配的是
一个直接量换行符
.在正则表达式中,许多标点符号都有特殊的含义.下面是这些字符和它们的含义:
正则表达式的直接量字符
字符
匹配
________________________________
字母数字字符
自身
\ f 换页符
\ n 换行符
\ r 回车
\ t 制表符
\ v 垂直制表符
\ / 一个 / 直接量
\ \ 一个 \ 直接量
\ . 一个 . 直接量
\ * 一个 * 直接量
\ + 一个 + 直接量
\ ? 一个 ? 直接量
\ | 一个 | 直接量
\ ( 一个 ( 直接量
\ ) 一个 ) 直接量
\ [ 一个 [ 直接量
\ ] 一个 ] 直接量
\ { 一个 { 直接量
\ } 一个 } 直接量
\ XXX 由十进制数 XXX 指 定的 ASCII 码字符
\ Xnn 由十六进制数 nn 指定的 ASCII 码字符
\ cX 控制字符^X. 例如, \cI 等价于 \t, \cJ 等价于 \n
___________________________________________________
如果想在正则表达式中使用特殊的标点符号
,必须在它们之前加上一个 "\" .