配合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


本文围绕JavaScript正则表达式展开,介绍了转义字符、多行字符串处理方法,阐述了正则表达式的作用、创建方式(直接量和new RegExp()),还讲解了表达式、元字符、量词的使用,以及正则表达式的方法、反向引用、支持正则的String对象方法,最后提及正向预查、去重等内容。
6万+

被折叠的 条评论
为什么被折叠?



