API---正则表达式

一、正则表达式-------即reg(RegExp)

语法:const 变量名=/表达式/

const str='你好世界'

/1、定义规则

const reg=/你好/ 

2、是否匹配

console.log(reg.test(str))//str中存在正则表达式的内容,返回true

3.exec()
consloe.log(reg.exec(str))

text与exec方法区别
1)用于判断是否有符合规则的字符-------返回的是布尔值
2)exec用于检索(查找)符合规则的字符串,找到返回数组,否则返回null

二、元字符

1、元字符是有一些特殊含义的字符

  • 边界符(表示位置,开头和结尾)
     
  • 量词:设定某个模式出现的次数
          // 量词*类似>=0次
            console.log(/^哈*$/.test('哈哈'));//true
            console.log(/^哈*$/.test(''));//true
            console.log(/^哈*$/.test('哈'));//true
            console.log(/^小*$/.test('小小鸟'));//false
            // 量词+ 类似>=1次 
            console.log(/^哈+$/.test('哈哈'));//true
            console.log(/^哈+$/.test(''));//false
            console.log(/^哈+$/.test('哈'));//true
            console.log(/^小+$/.test('小小鸟'));//false
           // 量词? 1或者0 次
            console.log(/^哈?$/.test('哈哈'));//false
            console.log(/^哈?$/.test(''));//true
            console.log(/^哈?$/.test('哈'));//true
            console.log(/^小?$/.test('小小鸟'));//false
            // 量词{n} 重复n次
            console.log('--------------------');
            console.log(/^哈{4}$/.test('哈哈'));//false
            console.log(/^哈{4}$/.test('哈哈哈'));//false
            console.log(/^哈{4}$/.test('哈'));//false
            console.log(/^哈{4}$/.test('哈哈哈哈'));//true
  • 字符类 
    [abc]:只能有其中一个
    [A-Z]:只能有其中一个
    [a-zA-Z0-9]全包括
    [^a-z]匹配除了26个小写字母之外的其他任何单个字符

精确匹配:

console.log(/^试$/.test('试试'));//false
console.log(/^试/.test('考试'));//false
console.log(/^试/.test('试试试'));//true
console.log(/试$/.test('考试'));//true

2、用户名验证案例
用 户名要求用户英文字母,数字,下划线或者短横线组成,并且用户名长度为6~16位
正则表达式:/^[a-zA-Z0-9-_ ]{6,16}$/


 

 <script>
        const reg = /^[a-zA-Z0-9-_]{6,16}$/
        const input = document.querySelector('input')
        const span = input.nextElementSibling
        input.addEventListener('blur', function () { //失去焦点false,符合条件true
            // console.log(reg.test(this.value));
            if (reg.test(this.value)) {
                span.innerHTML = '输入正确'
                span.className = 'right'
            } else {
                span.innerHTML = '请输入6-16位的英文数字下划线'
                span.className = 'error'
            }
        })
    </script>

3、预定义

三、修饰符

replace替换

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

<script>
        console.log(/^java$/.test('java'));
        console.log(/^java$/i.test('Java'));
        console.log(/^java$/i.test('JAVA'));
        const str = 'java好'
        str.replace(/java/i, '前端')
        const re = str.replace(/java/ig, '前端')
        // 不但要区分大小写(i),还要全局替换(g)
        console.log(re);//前端好


    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值