JavaScript 正则表达式 笔记

 

特殊字符转义(小写!)

 

\w word 字母数字下划线[a-zA-Z0-9_]

\s space 任何Unicode空白符 [\n\r\f\t\v]

\d decimal [0-9]

\b bound 单词边界 (/^JavaScript\b/ 与 “JavaScript is...”匹配,不与“JavaScript:alert('');”匹配)

 

重复

 

{n}

{m, n}

{m,} 重复次数大于m

 

分组与引用

 

通过括号对正则表达式进行分组。

分组两个作用:一是重复,而是引用。

\ $

 

匹配位置

 

(?=  ) 预查 指定匹配字符串接下来应该出现的匹配串

如:/JavaScript(?=hello)/ 匹配 “JavaScripthelloworld”中的JavaScript串

 

(?!  ) 预查非

 

(?:  ) 匹配但不获取

 

标志

 

m 多行模式匹配 不加则只匹配单行结果 ^行首 $行尾

 

其他

 

\xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。

 

\num 匹配 num,其中num是一个正整数。对所获取的匹配的引用。

 

\n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。

 

\nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。

 

\nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。

 

\un 匹配 n,其中 n 是一个用四个十六进制数字表示的Unicode字符。

 

匹配中文字符的正则表达式: [u4e00-u9fa5]

 

匹配双字节字符(包括汉字在内):[^x00-xff]

 

? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串

 

(?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。

 

怎样查看自己的正则表达式是否写对(检查转义字符是否写对),可以查看正则表达式对象的.source属性。

 

示例代码

 

Code
posted @ 2008-08-13 16:32  东捣CY  阅读(950)  评论(0编辑  收藏  举报