--------------------------------------------------------------------------------
复习字符串的操作
indexOf 查找
substring 获取子字符串
charAt 获取某个字符
split 分割字符串,获得数组
找出字符串中的所有数字
用传统字符串操作完成
用正则表达式完成
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
正则表达式
什么是正则表达式
什么叫"正则"
-规则、模式
-强大的字符串匹配工具
正则的写法
-new RegExp("a");
-/a/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
正则表达式的常用方法
test
字符串判断
- 返回真假
- 正则.test(字符串)
- 例子:是否有不是数字的字符
search
- 返回出现的位置
- 字符串.serrch(正则)
- 忽略大小写: i--ignore
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
match
获取匹配的项目
- 返回数组
- 量词: +
- 全局匹配:g--global
- 例子:找出所有数字
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
replace
替换所有匹配
- 返回替换后的字符串
- 字符串:replace(正则,想替换的)
- 例子:敏感词过滤
- 匹配子项
- 例子:日期格式化
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
正则表达式字符类
任意字符
[abc]
- 例子:o[usb]t--obt、ost、out
范围
[a-z]、[0-9]
- 例子:id[0-9]--id0、id5
排除
[^a]
- 例子:o[^0-9]t--oat、o?t、ot
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
转义字符
转义字符
.(点)--任意字符
\d、\w、\s、\b
\D、\W、\S、\B
\1 重复子项
例子
- 获取class元素
- 找重复项最多的字符和个数
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
什么是量词
出现的次数
{n,m},至少出现n次,最多m次
例子:查找QQ号
常用量词
{n,} 至少n次
* 任意次 {0,}
? 零次或一次 {0,1}
+ 一次或任意次 {1,}
{n} 正好n次
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
常用正则例子
高级表单校验
匹配中文:[\u4e00-\u9fa5]
行首行尾空:^\s*|\s*$
Email:^\w+@[a-z0-9]+(\.[a-z]+){1,3}$
网址:[a-zA-z]+://[^\s]*
QQ号:[1-9][0-9]{4,9}
邮政编码:[1-9]\d{5}
身份证:[1-9]\d{14}|[1-9]\d{17}|{1-9}\d{16}X
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
正则与面向对象
把方法包在一个空间里
有人管他叫--命名空间
在公司里,把同一类方法,包在一起
JSON的使用
把之前的方法,包在一起
var re = {
qq : /[1-9][0-9]{4,9}/,
email : /^\w+@[a-z0-9]+(\.[a-z]+){1,3}$/,
number : /\d+/
};
用的时候,直接调用
如: re.email 这样更方便一些
--------------------------------------------------------------------------------
案例源码分享链接
密码:EuOT