正则随笔

正则表达式是用于匹配字符串中字符组合的模式。

下面是一些基本的正则判断

//匹配字母
    const reg1 = /[a-zA-Z]/
    //匹配数字
    const reg2 = /\d/
    //匹配非数字
    const reg3 = /\D/
    //空格
    const reg4 = /\s/
    //字母、数字、下划线
    const reg5 = /\w/
    //特殊字符
    const reg6 = /[!@#$%^&*]/
    //非字母匹配
    const reg7 = /[^a-zA-Z]/

当你需要匹配一个不确定的字符串时,比如寻找一个或多个 "b",或者寻找空格,可以在模式中使用特殊字符。比如,你可以使用 /abc/ 去匹配一个单独的 "a" 后面跟了零个或者多个 "b",同时后面跟着 "c" 的字符串:的意思是前一项出现零次或者多次。在字符串 "cbbabbbbcdebc" 中,这个模式匹配了子字符串 "abbbbc"。

一些常见的正则方法:
test() 检测一个字符串是否与正则表达式匹配,返回布尔值
match() 在字符串中搜索匹配正则表达式的内容,返回数组或者null
search() 在字符串中搜索匹配正则表达式的内容,返回匹配的索引或-1
replace() 将匹配正则表达式的内容替换为指定字符串,并返回替换后的字符串
split() 根据正则表达式将字符串分割成数组
还有一些其他的方法,当需要使用时,查询手册即可。

一些和正则有关的题目:

// 匹配由数字和字母组成的字符串,且长度为5到10个字符之间。
/^[a-zA-Z0-9]{5,10}$/
// 匹配一个有效的邮箱地址。
/^[a-zA-Z0-9]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
// 匹配一个日期,格式为YYYY-MM-DD,例如2023-01-01。
/^\d{4}-\d{2}-\d{2}$/
// 匹配一个手机号码,格式为11位数字,以1开头。
/^1\d{10}/
// 匹配一个由字母组成的字符串,第一个字母必须大写。
/^[A-Z][a-zA-Z]*$/
// 匹配一个包含特殊字符(例如@、#、$)的字符串。
/[!@#$%^&*]/
// 匹配一个URL,以http或https开头,并以.com结尾。
/^(http|https):\/\/[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/
// 匹配一个HTML标签,例如<div>或<p>。
/^<([a-zA-Z]+\d?)([^<>]+)*(?:>(.*)<\/\1>|\s*\/?>)%/

关于贪婪匹配和惰性匹配:

//贪婪匹配和惰性匹配
    const string = 'aaaaaa'
    const greedyPattern = /a+/  //贪婪匹配 尽可能多
    const lazyPattern = /a+?/  //惰性匹配 只匹配一个

    console.log(string.match(greedyPattern))
    console.log(string.match(lazyPattern))
posted @ 2023-06-30 16:04  ntbb  阅读(42)  评论(0)    收藏  举报