正则表达式
RegExp - 正则表达式(Regular Expression)复杂数据类型 object
作用:专门用来验证字符串是否符合规则;
从字符串里面获取一部分符合规则的内容
语法:使用一些特定的符号,来组成一个表达式
使用这个表达式去验证字符串,或者获取一些内容
创建
1.字面量形式创建
var reg = /abcd/i // 写在两个//中间 验证字符串内要包含'abcd'字母d段 不区分大小写
2.内置构造函数创建
var res = new RegExp('abcd','i') //验证字符串内要包含'abcd'字母d段 不区分大小写
方法
1.匹配
验证字符串是否符合规则
语法:正则.test(要检测的字符串)
返回:一个布尔值,true / false
2.捕获
获取字符串中符合正则规则的一部分片段
语法:正则.exec(要捕获的字符串)
返回:1.没有找到,返回null
2.返回数组
3.字符串的正则表达式方法
match() 匹配
replace() 查找并替换,返回替换后的新字符串
search() 查找并返回,返回匹配的字符串的其实位置,找不到则返回-1
split() 根据指定字符串拆分,返回拆分后的数组,否则返回原字符串
元字符--基础
-
\s 表示一个空白字符串 空格,回车,制表
-
\S 表示一个非空白字符串
-
\t 表示一个制表符(tab) ,不是空格,一定要是tab
-
\d 表示一个数字
-
\D 表示一个非数字
-
\w 表示包含一个数字或者字母或者下划线
-
\W 表示包含一个(数字,字母,下划线)以外的字符 非数字字母下划线
-
点(
.) 非换行符以外的任意单个字符, 看字符,一个中文字也匹配 -
斜线(\)表示转义符 把没有意义的内容转换成有意义的内容;把有意义的内容换成没有意义的内容
元字符--边界
1.^ 表示字符串开始
var reg = /^\d/; //表示字符串要以数字开头
2.$ 表示字符串结尾
var reg = /\d$/; //表示要以数字结尾 var reg = /^\d$/; //这表示开头接一个数字立刻结束,所以只能有一个数字 //一个符号只表示一个字符
元字符--限定
写在普通元字符或者字母符号的后面
修饰前面一个符号出现的次数
1.* 表示字符串中某字符需要出现 0 ~ 多个
var reg = /\d*/;//表示字符串里要出现0-多个数字 console.log(reg.test("abcd1abcd111"));//true var reg2 = /^\d*$/;//表示以数字开头,有多个数字,立刻以数字结尾 console.log(reg2.test("123456"));//true console.log(reg2.test("123adc123"));//false
2.+ 表示字符串中某字符需出现 1 ~ 多次
var reg = /\d+/; console.log(reg.test("abcds")); //false console.log(reg.test("abc1"));//true
3.? 表示字符串中某字符出现 0 ~ 1次
var reg = /^\d?$/; console.log(reg.test("12"));//false
4.{n} 表示出现n次
var reg = /^\d{3}$/;//表示只能由3个数字组成
5.{n,} 表示出现n到多次
var reg = /^\d{2,}$/;//表示只能由两到多个数字组成
6.{n,m} 表示只能出现n ~m次
var reg = /^\d{2,4}$/;//表示只能由2-4个数字组成
7.[]表示里面的任意一个元素
var reg = /[abc]/; //表示匹配a,b,c任意一个即可
模式匹配
| 代表或,匹配其中一种字符串
var reg = /good|baidu|bing/; //表示字符串只要存在三个字符串其中一个即可
() 分组匹配 将内容进行分组,可以作为一个整体进行多次匹配
var reg = /(good){2,4}/; //匹配分组中的字符串"good"出现2-4次
(.*)获取n...m之间的任意字符
var reg = /n(.*)m/;
g 全局匹配
i 忽略大小写
m 换行模式 换行后重新匹配

浙公网安备 33010602011771号