RegExp 正则表达式(是复杂数据类型)
1.语法:1-1.以字面量创建
1-2.内置构造函数创建
!2.正则表达式俩方法
*2-1.匹配 语法:正则:test(要检测的字符串)
返回值:一个布尔值
*2-2 捕获:语法:正则:exec(要捕获的字符串)
从字符串里面获取符合规则的那一部分
返回值:无符合:null / 符合[0]是捕获出来的片段(不管捕获多少次都是捕获第一个片段)
!3.元字符:组成正则的基本符号,以符号的形式代替文本内容
*1.\s 一个空格
* \S 非空格
*2.\t 制表符
*3.\d 表示字符串必须有一个数字
*4.\D 表示字符串需要有一个非数字字符
*5.\w 表示字符串字母下划线必须有一个
*6.\W 非数字字母下划线
*7.\n 字符串里有一个非换行内容\n
*8.\ 转换符 有意义<==>无意义
!4.边界字符串
1.^ 表示字符串开始
1.$ 表示字符串结尾
!5.限定元字符 : 修饰前面 *一个符号* 的出现次数
5-1. * 表示 0 ~ 多次(从0开始)
5-2. + 表示 1 ~ 多次(从1开始)
5-3. ? 表示 0 ~ 1次
5-4. {n} 表示 n次 {0,}等价于* {1,}等价于+
5-5. {n,}表示 n ~ 多次 (从n开始) {0,1}等价于?
5-6. {n,m}表示 n ~ m次
5-6
!6.正则贪婪和非贪婪:
+正则在捕获时尽可能多的去捕获内容
非贪婪:写限定符的时候在后面加?
例子:+?正则在捕获时尽可能少的去捕获内容
*?正则在捕获时尽可能少的去捕获内容
正则表达式的元字符 - 特殊符号
*1.()
* 1-1一个整体
* 1-2单独捕获:在捕获一个字符串时 从左边开始每个小括号依次是数组里面的[1]开始的内容
* 从左到右依次数小括号的开始括号
*2.(?:)整体匹配 不单独捕获
*3. | 占位或 左边或右边都行
*4.[] 表示里面任意一个都行,一个[]占一个字符串位置
*5.[^]表示非里面任意一个都行,一个[^]占一个字符串位置
*6.- 一位字符 表示0 ~ 9
*7. 组合形式
* 7-1 [0-9a-zA-Z] 等价于\w
* 7-2 [^0-9a-zA-Z_] 等价于\W
* 7-3 [0-9] 等价于 \d
* 7-4 [^0-9] 等价于\D
* 7-5 [ ]等价于 \s
* 7-6 [^ ]等价于\S
*8. 当 ( . ) 出现在 []或者出现在 [^]表示一个点文本
字符串和正则合作的方法
*1.search() 查找
*语法:1-1.字符串search(字符串片段)
* 1-2.字符串search(正则表达式)
*返回值:有返回索引,没有返回 -1
*2.replace() 替换
*语法:1.字符串.replace(字符串片段,要替换的内容)
* 2.字符串.replace(正则表达式,字符串片段)
*返回值:1.只能替换第一个查找到的内容,返回替换好的字符串
* 2.没有全局标识符 g 的时候只能替换第一个找到的内容,返回替换好的字符串
* 有则将满足条件的全部替换,返回替换好的字符串
*3.match()
*语法:1.字符串.match(字符串片段)
* 2.字符串.match(正则表达式)
*返回值:1.查找到字符串内一个满足字符串片段的内容返回,返回格式和exec一样(无符合:null / 符合[0])
* 2.正则表达式没有全局标识符 g 的时候,返回格式和exec一样
* 3.正则表达式有全局标识符 g 的时候,返回一个数组,里面是所有满足条件的内容
*4.正则匹配中午
* 4-1 \u 表示查找中午
* 4-2 后面带上中文四位 Unicode 编码
* 4-3 任意一个中文字符 [\u4e00-\u9fa5]