欢迎光临
我们一直在努力

关于认识正则及小练习

目录

认识正则

基础方法

test()

esec()

match()

replace()

注意

修饰符

i

g

实例:

边界符

\\b 单词边界

^ 匹配字母首行

$ 匹配字母尾行

量词

字符类

[ ] 任意匹配

– 连字符

^ 取反

. 匹配换行外的任意字符

元字符

\\d:

\\D;

\\w:

\\W:

正则练习

1.手机号脱敏 

2.密码匹配 (6-16字母、数字、下划线)

4.匹配24小时时间 23:59 20:12 08:35 18:22


认识正则

正则表达式是用来匹配、查找、替换字符串的强大规则,几乎所有编程语言都支持。

 const reg<名字> = /需要校验的规则/

基础方法

test()

查找文本中是否有符合字符,返回布尔值

esec()

返回数组,查找字符 

match()

查找文本符合字符,返回,符合几个返回几个

replace()

替换

注意

test与match区别 一个返回布尔值,一个返回具体字符

修饰符

i

不区分大小写

g

全局匹配

实例:

const reg = /an/gi;
console.log(reg.test('aaaAn'));
const str = 'an Apple,an Ant';
console.log(str.match(reg));

边界符

\\b 单词边界

const reg1 = /\\ban\\b/ig;
const str1 = 'an Apple,an Ant';

^ 匹配字母首行

const reg2 = /^ab/;
console.log(reg2.test("aabab"));

$ 匹配字母尾行

const reg3 = /ab$/;
console.log(reg3.test("aababb"));

量词

 * 0次或多次

const reg = /a*$/;
console.log(reg.test('aa'));
console.log(reg.test(' '));
console.log(reg.test('aab'));

+ 一次或多次

const reg2= /a+$/;
console.log(reg2.test('aa'));
console.log(reg2.test(' '));
console.log(reg2.test('aab'));

? 0次或1次

const reg3 = /a?$/;
console.log(reg3.test('aa'));
console.log(reg3.test(' '));
console.log(reg3.test('aab'));

{n} 重复n次  n要自己填数字

const reg4 = /a{2}$/;
console.log(reg4.test('aa'));
console.log(reg4.test(' '));
console.log(reg4.test('aab'));

{n,} 重复n次或多次

const reg5 = /a{n,}$/;
console.log(reg5.test('aa'));
console.log(reg5.test(' '));
console.log(reg5.test('aab'));

{n,m} 重复n到m次

const reg6 = /a{0,2}$/;
console.log(reg6.test('aa'));
console.log(reg6.test(' '));
console.log(reg6.test('aab'));

字符类

[ ] 任意匹配

const reg = /[abc]/;
console.log(reg.test("ababab"));
console.log(reg.test("abc"));
console.log(reg.test("acbab"));
console.log(reg.test("ededfd"));

– 连字符

const reg1 = /0-9/;
const reg2 = /a-z/;
const reg3 = /A-Z/;
const reg4 = /a-zA-Z0-9_/;

^ 取反

const reg5 =/[^0-9]/;
console.log(reg5.test('adad'));

. 匹配换行外的任意字符

const reg6 = /./;
console.log(reg6.test('adad'));
console.log(reg6.test('\\t'));

元字符

\\d:

匹配任意一个数字(0-9)

\\D;

匹配任意非数字字符,等价于 [^0-9]

\\w:

匹配任意一个字母、数字、下划线

\\W:

匹配非字母 / 数字 / 下划线的字符

正则练习

1.手机号脱敏 

       

const a = /(1\\d{2})(\\d{5})(\\d{3})/

        const num = "16638990987"

        console.log(num.match(a))

        const num2 = num.replace(a, '$1*****$3')

        console.log(num2)

2.密码匹配 (6-16字母、数字、下划线)

       

const password = /^[\\d\\w_]{6,16}$/

        const str = '16yre578uu778_'

        console.log(str.match(password))

4.匹配24小时时间 23:59 20:12 08:35 18:22

     

  const time = /^(\\d{2}){00,23}:(\\d{2}){0,59}$/

        const str3 = '23:59'

        const str4 = '20:12'

        const str5 = '08:35'

        const str6 = '18:22'

        console.log(str3.match(time))

        console.log(str4.match(time))

        console.log(str5.match(time))

        console.log(str6.match(time))

赞(0)
未经允许不得转载:171主机测评 » 关于认识正则及小练习
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址