2018-10-25-正则

1. 字符串查询的一些函数

search
charAt
split
substring
slice

  • eg1: * charAt 查询 *
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
    var str = 'sdb-fjio-asdm.k-aus-diwq,';
    // console.log(str.search('kas'));  //返回的是查询的字符串的位置  ——-1。

    // console.log(str.substring(2,5));  //控制页面显示的是2-5(但不包含5在内的)位置 ——d-f。

    console.log(str.charAt(2));  //charAt查询的是元素中第几个
    </script>
</body>
</html>
  • eg2:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
    var str = 'ads302nbdsjknjk219iknsjknca219343knsjk739bjk_rh32.sfh222';
    // console.log(parseInt(str[0])) ; //NaN  返回特殊值NaN,表示表单式不是数字。
//
    var temp='';
    var arr=[];
    //遍历
    for(var i=0;i<str.length;i++){
        //此处使用isNaN是查询数字,parseInt()将str()转化为整形,获取的只是数字
        if(!isNaN(parseInt(str[i]))){
            temp=temp+str[i];
        }else{
            if(temp){
                arr.push(temp);  //push在末尾添加一个新的数字。
                temp='';  //当查询的不是数字时(是字母时)temp得到的为空(即将字母排除在外)。
            }
        }
    }
    if(temp){
        arr.push(temp);
        temp='';
    }  //获取最后一个数字222.
    console.log(arr);
    </script>
</body>
</html>

2.正则的创建

var re = new RegExp('a','修正'); //js所特有的创建方式
var re = /a/修正; //定界符 perl语言风格
修正是一些特殊意义的符号:
i: 忽略大小写
g:全局匹配
https://www.2cto.com/kf/201207/140376.html

  • eg1:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
    var re = new RegExp('a','g');  //js所特有的创建方式。
    var str = 'jsJSNDaSLaHDIOajdjdAfeadddA';
    console.log(str.match(re));
    // var re = /a/g;  //定界符 perl语言风格  “g”代表全局匹配
    // “a”是所获得的内容。
    </script>
</body>
</html>
  • eg2:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
    var str = 'asd302nbdsjknjk219iknsjknca219343knsjk739bjk_rh32';
            console.log(parseInt(str));     //-NaN  返回特殊值NaN,代表表达式不是数字。
        var re=/\d+/g;  //"g"代表全局匹配 "\d"代表获取的数字 "+"代表连续
        console.log(str.march(re));     //返回的是匹配到的内容。
    </script>
</body>
</html>

3.re.test()

判断正则是否能够匹配带内容,如果可以返回true,否则返回false。

4.str.match(re)

返回匹配到的内容

5.str.replace(re,要替换的内容);

6.re.exec(str)

返回匹配到的内容

7.str.search(re)

查询返回的是字符串的位置

8.元字符 一个 []

具体字符选择
[abc]dc a|b|c + dc adc| bdc | cdc
范围
[a-z] a......z
[0-9] 0123456789
[A-Z] A.......Z
取反
[^0-9]
[^a-z]
[^abc]

9.原子

. 任何
\d === [0-9] 数字
\D === [^0-9] 为数字
\w ===[0-9a-zA-Z_] 字母数字下滑线
\W ===[^0-9a-zA-Z_] 不是字母数字下滑线
\s === 空白字符
\S === 非空白字符

10.量词

出现的次数
{m} 出现m次
{n,m}出现n-m次
{n,} 至少出现n次

  • === {1,} 至少出现1次
    ? === {0,1} 有或者没有
  • === {0,} 出现多少次都行 容易出现问题

11. 信息采集 爬虫

贪婪:尽可能的匹配最长的结果。

12.边界符

^ 以什么开始
$ 以什么结束

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容