day14 正则
一、<!-- 正则表达式 常用于表单验证 判断用户填写的内容是否正确 -->
<body>
<script>
// 正则表达式 可以使用 / /是声明一个正则对象
// 正则对象定义方式
// 第一种定义 常用
// var regx=/^b$/ 声明的就是一个正则对象 ^表示开头 $表示1结尾 只匹配b这一个单词
// 第二种定义
var regx1=new RegExp('^a$')//只匹配a
// [] 表示其中一个元素
var regx2=/^[asgbg]$/ //匹配其中一个
// {} 表示个数
var regx3=/^[abc]{2}$/ //匹配ab bc ac aa bb cc abc三个元素任意两个组成的单词
// g全局匹配(会全局搜索所有结果 没有全局找到第一个就不找了) i表示不区分大小写
var regx4=/^[ab]{2}$/gi //匹配 aa ab ba bb aA Aa aB Ba
// 使用第二种定义如果需要加上g或i关键词
var regxObj=new RegExp('^a$','gi')
// 修饰符
// +表示1个到多个
var regx5=/^[a]+$/ //匹配a aa aaa 匹配一个a或多个a
// *表示0个或多个
var regx6=/^[ab]*$/
// ? 表示匹配0个到1个
var regx7=/^a[ab]?$/ //a aa ab
// 对应的正则对象的方法
// test 是否符合对应的表达式 test() 里面的参数为string类型 返回结果为布尔类型
console.log(regx7.test('a')); //true
// exec 方法 找到符合的结果 返回数组 没有匹配返回null
console.log(regx7.exec('ab')); //
// 针对里面的[] * + ,等等没有办法直接解析的 需要加转义符 \
//string类型支持正则的方法//split截取方法
//replace替换方法支持正则//search搜索方法
//match正则对象的exec方法很像返回也是一个数组里面的元素为匹配的结果(返回第一个找到的)
var regx2 = / [abc]{2}/
console.log( 'abca'.match(regx2));
//正则对象的方法
//test方法判断是否有匹配的有返回true没有返回false
//exec方法返回一个数组数组里面为匹配的结果(返回第一个找到的)
// 如果加g的话 从左往右找 找到对元素就不管了
var regx3 = / [abc]{2}/g
console.log( 'abca'.match(regx3));
console.log( 'abca'.match(regx3));
</script>
二、<!-- 正则补充 -->
<script>
// . 表示任意字符 如果你想匹配需要转义 \. 匹配点
var regx=/./
var str=' '
console.log(regx.test(str));
// \s 表示空白 \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表示数字字母下划线\w非数字字母下划线
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'));
// 可以直接取出括号里面的值 向上就近
console.log(RegExp.$1);//取出第一一个括号的匹配的内容
console.log(RegExp.$1);//没有第二个括号的话 拿到内容为空
// |或
var regx8=/abc|bcd/ //匹配abc 或者是bcd
// 如果加了?后面括号的内容不能获取了 RegExp.$获取
var regx9=/\w{6}/ //6位以上 后面被忽略掉了
regx9.test('1234') //false
// {} 表示个数 可以规定个数的范围 {1,2} 表示一个到两个 {1}表示一个 {1,} 表示一个到多个 {2,}表示两个到多个
console.log(/^a{1,2}$/.test('111'));
// /m是换行匹配 g全局匹配 i忽略大小写

浙公网安备 33010602011771号