[JamTin]正则表达式用法学习笔记

正则表达式

正则表达式是由普通字符及特殊字符组成的对字符串进行过滤的逻辑公式

以下为JS编写的语句,可以按段用浏览器控制台调试复习理解

//注释内容为输出结果

正则表达式创建方式

//1.字面量的方式
var reg = /abc/;
//2.构造函数
var reg = new RegExp("abc");
//test方法正则表达式的方法 用于检验字符串是否含有符合规则的子串,有,返回true,无,返回false
var str = "ab";
var flag = reg.test(str);
console.log(flag); //返回false

//修饰符 g i
//g 表示全局匹配
var reg = /abc/g;
var str = "abcabc";
//match方法,字符串方法
console.log(str.match(reg));//{"abc", "abc"}

//i 表示忽略大小写
var reg = /abc/i;
var str = "AbcABCabc";

console.log(str.match(reg));//{"Abc", index: 0, input:"AbcABCabc"}
//全局使用/abc/gi

//search方法用于查找符合规则的子串的位置,只返回第一个匹配的位置
var reg = /abc/;
var str = "12345abc";
console.log(str.search(reg));  //输出5

//split
var reg = /good/;
var str = "good good study!";
console.log(str.split(reg))//输出{"", " "," study!"}

//replace
var reg = /tmd/i;
var str = "abc tmd abc TMD";
console.log(str.replace(reg, "*"));//仅换第一个 用g可以换全局

//exec方法,正则表达式的方法 将匹配成功的内容放到数组里,如果没有成功则返回null
var reg = /good/g;
var str = "good good study";
console.log(reg.exec(str));//{"good", index:0, input:"good good study"}
console.log(reg.exec(str));//{"good", index:5, input:"good good study"}
console.log(reg.exec(str));//null

//.除了换行符之外的所有单个字符
var reg = /g..gle/gi;
var str = "googleg--gle";
console.log(reg.test(str));//true
console.log(str.match(reg));//{"google", "g--le"}

//* 重复多次匹配, 匹配任意次(0-n);
var reg = /g*gle/gi;
var str = "ggggle";
console.log(reg.test(str));//true
console.log(str.match(reg));//{"ggggle"}

//+ 至少匹配一次重复匹配
var reg = /g+gle/gi;
var str = "ggle";
console.log(reg.test(str));//true

//? 进行0或者1次匹配
var reg = /g?gle/gi;
var str = "ggle";
console.log(reg.test(str));//true
console.log(str.match(reg));//{"ggle"}

//[] 表示可以出现的范围[0-9]
var reg = /[0-9]]/gi;
var str = "abc";
console.log(reg.test(str));//false
var str1 = "abc0";
console.log(reg.test(str1));//true

//\w 数字字母下划线 等同于[0-9a-zA-Z__]
var reg = /\w+/gi;
var str = "abc13";
console.log(reg.test(str),str.match(reg));//true {"abc13"}

//\d 表示数字[0-9]
var reg = /\d+/gi;
var str = "abc12345";
console.log(reg.test(str),str.match(reg));//true {"abc13"}

//\s 匹配空格
var reg = /\s+/gi;
var str = "good good   study!";
console.log(str.replace(reg, ""));//{"goodgoodstudy!"}

//{m,n} 至少匹配m次,至多匹配n次
var reg = /go(3,6)gle/gi;
var str = "google";
console.log(reg.test(str));//true
var str1 = "gogle";
console.log(reg.test(str1));//false

var reg1 = /go(3,)gle/gi;
var str2 = "gooooooooooogle";
console.log(reg1.test(str2));//true

var reg2 = /go(3,)gle/gi;
var str3 = "gooogle";
console.log(reg2.test(str3));//true

// /^ 匹配开始 ¥匹配结尾
var reg = /^g.g$/gi;
var str = "gooogle";
console.log(reg.test(str));//false

// | 或
var reg = /google|baidu|bing|yahoo/gi;
var str = "www.baidu.com";
console.log(reg.test(str),str.match(reg));//true {"baidu"}

//()分组 将内容作为一个整体进行匹配
var reg = /(google){4,6}/gi;
var str = "googleaaagoglegooglegooglegoogle";
console.log(reg.test(str),str.match(reg));//true {"googlegooglegooglegoogle"}
console.log(RegExp.$1); //google

//$1 $2
var reg = /(.*)\s(.*)/;
var str = "taobao baidu";
console.log(str.replace(reg,"$2 $1"));//baidu taobao
实战 :
用户名:<input type="text" id="username">(数字,字母,下划线组成的6-15位字符,且不能以数字开头)

<scipt type="text/javascipt">
	var oInput = document.getElementById("username");
    oInput.onchange = function(){
    	var val = this.value;
    	var reg = /^[a-zA-Z_]\w{5,14}$/;
    	if(reg.text(val)){
    		console.log("格式正确");
    	}else{
    		console.log("格式错误,请重新输入!");
   	 }
    }
</scipt>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值