正则表达式
正则表达式 常用于表单验证(判断用户填写的内容是否正确)
正则表达式 可以使用 //是声明一个正则对象
正则对象定义方式
第一种定义 常用
var regx = /^b$/ //声明的就是一个正则对象 ^表示开头 $表示结尾 只匹配一个b这个一个单词
第二种定义
var regx1 = new RegExp('^a$') //声明一个正则对象 只匹配a这个单词
[] 表示其中的一个元素
var regx2 = /^[abcdef]$/ //匹配a 或者 b 或者 c 或者 d 或 e 或 f 其中一个单词
{} 表示个数
var regx3 = /^[abc]{2}$/ //匹配 ab bc ac ba cb ca aa bb cc 意思abc三个元素任意俩个组成的单词
g全局匹配(全局搜索所有结果 没有全局找到第一个就不找了) i表示不区分大小写
var regx4 = /^[ab]{2}$/gi //匹配 aa ab ba bb Aa aA AA Ab aB BB Ba AB BA bA
使用第二种定义如果需要加上g或i关键词
var regxObj = new RegExp('^a$','gi')
修饰符
+表示1个到多个
var regx5 = /^[a]+$/ //匹配 a aa aaa aaa.. 匹配一个或多个a
*表示0个到多个
var regx6 = /^[ab]*$/
? 表示0个到一个
var regx7 = /^a[ab]?$/ //匹配 a aa ab
. 表示任意字符 如果你想匹配.需要\转义 .匹配点
var regx = /./
var str = 'abc'
console.log(regx.test(str));
\s 表示空白 包括空格 换行符 tab… \S 相反 表示非空
var regx1 = /\s/
var regx2 = /\S/
console.log(regx1.test(str));
console.log(regx2.test(str));
\d 表示数字 \D非数字
var regx3 = /\d/
var regx4 = /\D/
console.log(regx3.test('123'));
console.log(regx4.test('123'));
\w 表示数字字母下划线相当于[a-zA-Z0-9_] \W 非数字字母下划线 ![a-zA-Z0-9_]
var regx5 = /\w/
var regx6 = /\W/
console.log(regx5.test('_'));
console.log(regx6.test('_'));
() 这个里面没有大的意义 主要做代码的范围分割
var regx7 = /([a][b]){2}/ //匹配的元素有 abab
console.log(regx7.test('abab'));
可以直接取出括号里面的值 向上就近 RegExp.$1
console.log(RegExp.$1); //取出第一个括号的匹配内容
console.log(RegExp.$2); //没有第二个括号的话 拿到内容为空
| 或
var regx8 = /abc|bcd/ //匹配abc 或者是bcd
console.log(regx8.test('abc'));
console.log(regx8.test('bcd'));
如果加了?后面的括号里的内容不能捕获了 RegExp.$获取
var regx9 = /\w{6}/ //忽略掉了
console.log(regx9.test('123456'));
console.log(regx9.test('12345'));
console.log(regx9.test('123456789'));
console.log(regx9.test(''));
{} 是表示个数 可以规定个数的范围 {1,2} 表示1个到2个 {1}表示1个 {1,}表示1个到多个
console.log(/a{1,2}/.test('111')); //表示a是1个到2个
m换行匹配 g全局匹配 i忽略大小写
对应正则对象的方法
test 是否符合对应的表达式 test() 里面的参数为string类型 返回结果为boolean类型
console.log(regx7.test('a')); //true
console.log(regx7.test('aba')); //false
exec方法 找到符合的所有结果 返回数组 没有匹配的返回null
console.log(regx7.exec('ab'));
针对于里面的[] * + .等等 没有办法直接解析的 需要加转义符\
var regx8 = /^\[\]$/
var regx9 = /^\*$/
console.log(regx8.test('[]'));
console.log(regx9.test('*'));
支持正则的方法
string 类型支持正则的方法
split 截取方法
replace 替换方法支持正则
seach 搜索方法
match 正则对象的exec方法很像 返回也是一个数组 里面的元素为匹配的结果 (返回第一个找到的)
var regx2 = /[abc]{2}/
console.log('abca'.match(regx2));