JS BOM 正则表达式

定义:用于匹配字符串字符组合的模式

作用:

  • 表单验证(匹配)

  1. 过滤敏感词(替换)

  • 从字符串中提取我们想要的部分(提取)

语法:两步法

第一步:定义规则

let 变量名=/表达式/

 第二步:根据规则查找(检测):找到则返回

test()用来查找正则表达式与指定字符是否匹配

//regObj.test(被检测的字符串)

let str='it培训,java开发,前端开发,软件测试'
let reg=/前端/
let re=reg.test(str)
console.log(re)

exec() 检索查找符合规则的字符串,在指定字符串执行搜索匹配

let str='it培训,java开发,前端开发,软件测试,WEB前端'
let reg=/前端/
let re=reg.exec(str)

console.log(re)

 元字符

  • 【a-z】

  • 【0-9】

  • 边界符:表示位置、开头和结尾:

  1. ^  表示以谁开头
  2. $  表示以谁结尾
  3. 如果^和$一起使用,表示精确匹配
  • 量词:表示重复次数  只针对最左边的

  1. *         重复零次或更多次               >=0
  2. +         重复一次或更多次              >=1
  3. ?        重复零次或一次                 0 || 1
  4. {n}       重复n次                              只能出现n次    ===n
  5. {n,}      重复n次或更多次                至少出现n次    >=n
  6. {n,m}   重复n次到m次                    n<=x<=m
  7. 注意,逗号左右两侧不要出现空格
  • 字符类:\d表示0-9

  1. []  中括号里面加连字符“-” 匹配字符集合,例如【a-z】,匹配任一字符返回TRUE,或者【a-zA-Z】,[0-9]
  2. 【^】取反,必须写到中括号里面  例如,【^a-z】表示除了小写字母a-z都可以
  3.    .    点,匹配除换行符之外的任何单个字符
  4. \d    匹配0-9任意数字   【0-9】
  5. \D    匹配除0-9的任意数字   【^0-9】
  6. \s     匹配空格、换行符、制表符等   【\t\r\n\v\f】
  7. \S     匹配非空格的字符     【^\t\r\n\v\f】
  8. \w   匹配任意数字大小写字母、下划线  【a-zA-Z0-9_】
  9. \W  除所有字母、数字、下划线以外的字符  【^a-zA-Z0-9_】

例如   日期格式:  ^\d{4}-\d{1,2}-\d{1,2}       样例    2022-08-12

案例  用户名验证

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>用户名验证</title>
    <style>
        input {
            width: 500px;
        }


    .right {
           
            color: green;
        }

        .wrong {
           
            color: red
        }
    </style>
</head>

<body>
    <input type="text" placeholder="请输入6-16位的用户名,可以使用英文大小写、数字、下划线"><br>
    <span></span>

    <script>
        let input = document.querySelector('input')
        let span = document.querySelector('span')

        // 失去焦点事件注册,blur
        input.addEventListener('blur', function () {
           
            if (/^[a-zA-Z0-9_]{6,16}$/.test(input.value)) {
                 alert (/^[a-zA-Z0-9_]{6,16}$/.test(input.value))
                span.className='right'
                input.style.border='2px solid green'
                span.innerHTML = '√ 输入正确'
            } else {
                span.className='wrong'
                input.style.border='2px solid red'
                 span.innerHTML = 'x 请输入6-16位的英文大小写、数字、下划线'

            }
        })
    </script>
</body>

</html>

修饰符

作用:约束正则表达式的细节,例如区分大小写,是否多行等

语法:/表达式/修饰符

  •  i   ignore缩写 ,不区分大小写

  • g   gloable 缩写,匹配所有满足正则表达式的结果

console.log(/a/i.test('a')//TRUE
console.log(/a/i.test('A')//TRUE
  •  替换 replace

字符串.replace(/正则表达式/,‘替换的文本’)

string.replace(/激情|基情/g,'**')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值