程序员社区

JS基础11

正则表达式

以某种模式去匹配字符串
正则表达式定义的2种形式

  • let reg=new RegExp(“正则模式”)
  • let reg=/正则模式/

正则方法

  1. test()正则匹配字符串,成功为真,否则为假
    reg.test(str)
  2. search()字符串查找正则,成功返回索引号,否则返回-1
    str.search(reg)
  3. math()字符串查找正则,成功返回匹配成功的数组,否则返回null
    str.math(reg)
  4. replace()字符串查找正则,成功则替换字符串
    str.replace(reg.'替换的字符串')
  5. exec()正则匹配字符串,里面有个2属性index(字符串匹配模式位置起始位置)input(要查找的字符串)
<script>
        function test(){
            var email='xiaoming028@qq.com'
            var reg=/[0-9a-zA-Z]+@[0-9a-zA-Z]+\.com/
            if(reg.test(email)){
                console.log('正确');
            }else{
                console.log('错误');
            }
        }
        test()
//结果正确

        function test2(){
            var password='Xiaoming123456'
            var reg=/^[A-Z][0-9a-zA-Z]{13}/
            if(reg.test(password)){
                console.log('正确');
            }else{
                console.log('错误');
            }
        }
        test2()
//结果正确
        function test3(){
            var phone='18012345678'
            var reg=/^1[3|5|8][0-9a-zA-Z]{9}$/
            if(reg.test(phone)){
                console.log('正确');
            }else{
                console.log('错误');
            }
        }
        test3()
//结果正确
        function test4(){
            var tel='028-12345678'
            var reg=/^0[0-9]{2}-[0-9]{8}$/
            if(reg.test(tel)){
                console.log('正确');
            }else{
                console.log('错误');
            }
        }
        test4()
//结果正确
        function text5(){
            var str='he is boy,this is apple'
            var reg=/\bis/g
            var newStr=str.replace(reg,'are')
            console.log(newStr);
        }
        text5()
//结果he are boy,this are apple
        function text6(){
            var str='hello word1'
            var reg=/\d/
            let matches=reg.exec(str)
            console.log(matches.index);
            console.log(matches.input);
            console.log(matches[0]);
        }
        text6()
//结果	10
	 	hello word1
	 	1
    </script>

连接符

符号 含义
[0-9] 0-9数字
[a-z] 从a到z小写字母
[A-Z] 从A到Z大写字母
[0-9a-zA-Z] 匹配数字和字母

限定符

符号 含义
+ 重复一次以上
* 重复任意次数
重复最多一次
{m} 重复m次
{m,} 重复最少m次
{m,n} 重复m到n次
[^m] 除m外任意字符

定位符

符号 含义
^ 限定开始字符
$ 限定结尾字符
\b 这是一个单词
\B 这是一个非单词

修饰符

符号 含义
g globa全选
i ignore case不区分大小写
m multiple lines多行搜索

注:系统查找时找到第一个就停止了,如果要找完正则表达式后加g

正则转义字符

符号 含义
数字和字母字符 自己本身
. 匹配除换行符\n和回车符\r之外任意字符
\f 匹配换页符
\n 匹配换行符
\r 匹配回车符
\t 匹配制表符
\v 匹配垂直制表符
\\ 匹配\
\" 匹配"
\’ 匹配’
\d 匹配一个数字
\D 匹配除数字外任意字符
\w 匹配数字,字母,下划线
\W 除数字,字母,下划线
\s 匹配Unicode空白字符,空格,制表,换行等等
\S 除Unicode空白字符

注:

  1. Unix系统中,每行结尾只有“<换行>”,即\n
  2. windows系统中,每行结尾有“<换行><回车>”,即\n和\r
  3. Mac系统中,每行结尾“<回车>”,即\r

贪婪模式和懒惰模式

  1. 系统默认贪婪模式,总是按最多次数执行
  2. 在正则表达式中有关次数限定符后加?可以转变为懒惰模式,只执行最少次数
<script>
//贪婪模式
    let str='132342451441'
    let reg=/\d{2,5}/
    console.log(str.match(reg));
//结果13234

//懒惰模式
    let str2='132342451441'
    let reg2=/\d{2,5}?/
    console.log(str2.match(reg2));
//结果13
</script>

正则工具网站

https://regexper.com/

赞(0) 打赏
未经允许不得转载:IDEA激活码 » JS基础11

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区