JavaScript正则表达式基础知识汇总

来源:互联网 发布:阿里云验证码 编辑:程序博客网 时间:2024/05/25 19:58
一、创建正则对象:1、构造函数RegExp创建正则对象    var pattern = new RegExp('s$'); //pattern匹配以s结尾的字符串复制代码2、使用正则直接量    var pattern = /s$/; //建议这样写复制代码二、正则表达式字符1、反斜线\ 在正则表达式中表示转义序列特殊符号:    ^ $ . * + ? = ! : | \ / ( ) [ ] { }复制代码如果想要在正则表达式中匹配它们,应该在他们前面加上反斜线,如:    var pattern = /\$/; //pattern匹配$符号复制代码2、直接量字符    字符 匹配    \o NUL字符(\u0000)    \t 制表符(\u0009)    \n 换行符(\u000A)    \v 垂直制表符(\u000B)    \f 换页符    \r 回车符    \xnn 由十六进制数nn指定的拉丁字符,例如:\x0A等价于\n    \uxxxx 由十六进制数xxxx指定的Unicode字符,例如:\u0009等价于\t    \cX 控制字符^X。例如:\cJ等价于换行符\n复制代码3、字符类    字符 匹配    [...] 方括号内的任意字符    [^...] 非方括号内的任意字符    [0-9] 0-9之间的数字    [a-z] 小写的拉丁字母    [A-Z] 大写的拉丁字母    [0-9a-zA-Z] 数字和大小写拉丁字母复制代码下面也属于字符类:    . 除换行符和其他Unicode行终止符之外的任意字符    \s 任意Unicode空白符    \S 任意非Unicode空白符    \d 任意ASCII码数字,等同于[0-9]    \D 任意非ASCII码数字的字符,等同于[^0-9]    \w 任意ASCII码单词字符,等同于[a-zA-Z0-9_]    \W 任意非ASCII数字,等同于[^a-zA-Z0-9_]    [\b] 在字符类中表示退格直接量复制代码4、重复字符类贪婪的重复字符    字符 匹配    {n,m} 前一项至少n次,但不能超过m次    {n,} 前一项至少n次    {n} 前一项恰好n次    ? 前一项0次或1次,等价于{0,1}    + 前一项至少一次,等价于{1,}    * 前一项0次或多次,等价于{0,}复制代码非贪婪的重复匹配只需在贪婪的重复字符后面加上一个?(问号),且问号后没有其他表达式字符,否则非贪婪匹配忽略。例:    var str = 'aaaaaa',    str2 = 'aaaaaabc',    pattern = /a+/,    pattern2,    pattern3;    pattern.exec(str); //全部匹配    pattern2 = /a+?/;    pattern2.exec(str); //只匹配了字符串中str的第一个a    pattern3 = /a+?bc/;    pattern3.exec(str2); //全部匹配,匹配结果为aaaaaabc复制代码5、选择,分组,引用    字符 含义    | 表示或,用于分隔选择    () 子表达式(子模式),可以引用子模式匹配结果    (?:) 子表达式(子模式),可以引用子模式匹配结果,但是子模式匹配结果不出现在正则匹配结果集中    \n(n为数字) 引用对应的子模式匹配结果复制代码6、位置字符    字符 匹配    ^ 字符串的开头    $ 字符串的结尾    \b 位于\w(单词字符)与\W(非单词字符)的边界或位于一个ASCII单词字符与一个字符串的开头和结尾之间的边界    \B 非词语之间的位置    (?=p) 正前向声明,要求接下来的字符与模式p匹配,但是不包括匹配中的那些字符    (?!=p) 反前向声明,要求接下来的字符不与模式p匹配复制代码例:    var url = 'vip.etao.com/youhui.htm?drawCredits',    pattern = /\byouhui\b/,    pattern2 = /^vip\.etao\.com\/.+drawcredits$/i;    pattern.exec(url); //匹配youhui子串    pattern2.exec(url); //全部匹配url变量值 复制代码三、正则对象标准,属性,及方法1、标志    标志 含义    g 全局匹配    i 不区分大小写    m 多行匹配复制代码2、方法    exec 接受一个字符串参数,返回由完全匹配和子表达式匹配结果组成的数组    test 接受一个字符串参数,返回boolean值    compile 编译正则表达式复制代码3、属性    source 正则表达式的文本    global 是否拥有全局搜索标志g    ignoreCase 是否拥有标志i    multiline 是否拥有标志m    lastIndex 搜索匹配的开始位置(可读写)复制代码


	
				
		
原创粉丝点击