JavaScript学习笔记16

一、正则表达式

        用某种模式去匹配一类字符串的公式。JavaScript中内置的对象。

        应用:更简单的解决这些问题-->匹配(match)、查找(seach)、替换(replace)、判断字符串

        创建正则对象:

                1.构造函数方式:let reg = new RegExp("正则表达式")

                2.字面量方式(隐式定义):let reg = /正则表达式/

常用方法:

test:正则.test(字符串) => true || false

search:字符串.search(正则) => 匹配成功的位置 || -1

match:字符串.match(正则) => 匹配成功的数组 || null

replace:字符串.replace(正则,"新字符串") => 替换后新字符串

exec:正则.exec(字符串) => 匹配成功的数组,index:表示第一个匹配的字符在原字符串中的位置,input:表示原字符串,groups:表示当初中命名的分组时匹配到的分组对象 || null

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>正则介绍</title>
</head>
<body>
    <script>
        const str = "Dgfhfgh254bhku289fgdhdy675gfh"
        // const reg = /\d+/g // \d+ -> +限定前面的\d数字出现1次或更多次
        const reg = new RegExp("[0-9]+","g")
        let arr = reg.test(str)
        let arr1 = str.match(reg)
        let arr2 = str.search(reg)
        let arr3 = str.replace(reg,'*')
        let arr4 = reg.exec(str)
        console.log(arr) //true
        console.log(arr1) //[ "254", "289", "675" ]
        console.log(arr2) //7
        console.log(arr3) //Dgfhfgh*bhku*fgdhdy*gfh
        console.log(arr4) //[ "254" ]
    </script>
</body>
</html>

二、常用元字符

元字符 说明
\d匹配数字,相当于[0-9
\D匹配非数字,相当于[^0-9]
\w匹配字母或数字或汉字或下划线
\W匹配任意不是字母、数字、汉字或下划线的字符
\s匹配任意的空白符,如空格、换行符、制表符等
\S匹配任意不是空白符的字符
.(点号)匹配除了换行符以外的任意字符
[...]  匹配方括号中的所有字符
[^...]匹配非方括号中的所有字符
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>正则字符</title>
</head>
<body>
    <script>
        /*
            写一个正则表达式,与给定的电话号码字符串匹配,判断是不是满足中国座机电话号
            以0开头,然后是两个数字,然后是一个连字号“-”,最后是8个数字。
        */
        const phone1 = '128-1234567890'
        const phone2 = '028-12345678'
        const reg = /^0\d{2}-\d{8}$/ // 匹配座机电话模式   // 量词-限定符
        // let isOk = reg.test(phone1) //false
        let isOk = reg.test(phone2) //true
        alert(isOk)
        
        /*正则表达式匹配HTML标签中的<h1>、<h2>、<h3>、<h4>、<h5>和<h6>*/
        var reg1 = /<h[123456]/
        var tel = '<h6>标题元素</h6>'
        let test = reg1.test(tel)
        console.log(test) //true

    </script>
</body>
</html>

 三、连接符

        连接符 “-”定义字符的范围。

[0-9] 匹配数字,等价于\d

[a-z] 匹配英文小写字母

[A-Z] 匹配英文大写字母

[0-9a-zA-Z] 匹配数字或英文字母

四、限定词-量词

+重复一次或更多次
*重复0次或更多次(任意次数)
?重复0次或1次(最多1次)
{n}重复n次
{n,}重复n次或更多次(最少n次)
{n,m}重复n到m次

 

五、定位符

        定位符:限定某些字符出现的位置。

^         限定开始位置的字符   例:^word

$         限定结尾位置的字符   例:word$

\b        限定单词(字)便捷的字符

\B        限定非单词(字)边界的字符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>定位符</title>
</head>
<body>
    <script>
        function test1(){
            const str = 'There once was a man from NewYork'
            const reg = /[^T][NewYork$]/
            const reg1 = /\bwas\b/
            console.log(reg.test(str)) //true
            console.log(str.match(reg1)) //[ "was" ]
        }
        test1()
    </script>
</body>
</html>

六、修饰符

g:global全文搜索,不添加,搜索到第一个匹配停止

i:ignore case忽略大小写,默认大小写敏感

m:multiple lines多行搜索

 七、正则特殊转义符

\.匹配.
\f匹配换页符
\n匹配换行符
\r匹配回车符
\t匹配制表符
\v匹配垂直制表符
\\匹配\
\"匹配 "
\'匹配 '

Unix系统里,每行结尾只有“<换行>”,即”\n”;

Windows系统里面,每行结尾是“<换行><回车 >”,即“\n\r”;

Mac系统里,每行结尾是“<回车>”,即”\n”;

选择符“ | ”,或运算

正则工具网站:http://jsrun.net/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值