js中的简单正则

js中的简单正则

1.test和match的区别
(1)用法的区别:reg.test(str); str.match(reg);
(2)返回值的区别:reg.test(str); 返回值为true/false
str.match(reg); 返回值为匹配到的内容,数组类型/null

2.g和非g的区别
g表示全局匹配,即会找str中所有匹配到的内容
非g表示局部匹配,也就是只要从开始匹配到一个以后,就不再往下找

案例:
判断字符串中是否有某个连续的子字符串?

let str = "abcde2423abcde756abcesff";

let pattern = /abcde/g;
str.match(pattern); //结果:["abcde","abcde"]
//或者
pattern.test(str); //结果:true

//还有另外一种写法,但是效果和上面一样
let pattern = RegExp(/abcde/g);
str.match(pattern); //结果:["abcde","abcde"]
pattern.test(str); //结果:true

//以上为加g的结果,下面为不加g的结果
let pattern = /abcde/;
str.match(pattern); //结果返回一个数组,内容如下:
/*
	0: "abcde"
	groups: undefined
	index: 0
	input: "abcde2423abcde756abcesff"
	length: 1
*/
//可以看到,当不加g时,最多返回一个元素,并且会返回匹配到的起始index
pattern.test(str); //结果:true

常见正则需求:
判断一个字符串是否只包含0-9 a-z A-Z,至少有一位?

let str = "ads345anhc55e";

//以下为错误写法
let reg = /^[0-9a-zA-Z]$/;
console.log(reg.test(str));
//分析:js正则匹配默认只匹配1位,但是str明显不止1位,所以匹配到的结果为false

//以下为正确写法
let reg = /^[0-9a-zA-Z]{1,}$/;
console.log(reg.test(str));
//分析:{1,}表示至少长度为1位
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值