配合w3c来看http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp
转义字符 ‘\’
\n 表示换行
\r 行结束符
\t 制表符 一个tab
多行字符串
字符串是不能直接在js里面换行的
需要每一行的最后加上一个转义字符
正则表达式的作用:匹配特殊字符或有特殊搭配原则的字符的最佳选择
正则表达式不是一个单独的规则,他是一个规则对象,对象里面包含了规则
正则表达式的创建方式:
1,直接量
表示正则表达式abc
表达必须连在一起的字符串片段
var reg = /abc/i;
i表示不区分大小写
g表示全局匹配,会把所有符合reg中的字符串片段都找出来
、
匹配行开头的a
还是一个 这是因为它还是认为这是一个字符串
所以,m是用在有\n情况下的多行匹配
2,new RegExp();
var reg = new RegExp('abc', 'i');
表达式:每个表达式代表一位
方括号用于查找某个范围内的字符
但是每一个可匹配片段只配一次
尖角号放到表达式里面表示非
表示第一位不是a,第二位不是d
查找括号里面的其中一个属性
元字符
使用方法:
可以放在方括号内,也可以放在方括号外
\w === [0-9A-z_]
\W === [^\w]
\d === [0-9]
\D === [^\d]
\s === [\t\n\r\v\f ]
\S === [^\s]
\b === 单词边界
\D === 非单词边界
前面空格是单词边界,后面连在一起的不是单词边界
量词 (正则表达式符合贪婪匹配原则)
n+ {1, } 匹配任何包含至少一个 n 的字符串
n* {0, } 匹配任何包含零个或多个 n 的字符串
n? {0,1} 匹配任何包含零个或一个 n 的字符串
n{x} {x} 匹配包含 X 个 n 的序列的字符串
n{x,y} {x,y} 匹配包含 X 至 Y 个 n 的序列的字符串
n{x, } 匹配包含至少 X 个 n 的序列的字符串
n$ 匹配任何结尾为 n 的字符串
^n 匹配任何开头为 n 的字符串
正则表达式的方法
test() 检索字符串中的值,返回true或者false
exec() 检索字符串中指定的值。返回找到的值,并确定其位置
reg.lastIndex就会返回index游标
但是一定到注意加上g,不然游标不会向后移动
反向引用
加了括号的元字符(子表达式),可以使用\1 来反向引用,表示和第一个一模一样,\2 表示和第二个一样
返回的数组里面会返回子表达式的值
支持正则表达式的String对象方法
match 找到一个或多个正则表达式的匹配
如果加上g,就会少很多附加属性
search 检索与正则表达式相匹配的值,并返回匹配的位置(-1表示匹配失败)
split 把字符串分割为字符串数组
replace 替换与正则表达式匹配的子串
所以,非正则表达式只能匹配一个
将the-first-time改成小驼峰式写法
正向预查,正向断言
?=n 匹配任何其后紧接指定字符串 n 的字符串
改变成非贪婪匹配
去重
表示1000000000,用点隔开 eg:1.000.000