正则基础(一看就会)

【正则】

1.什么是正则

    正则表达式(规则表达式)  regular expression

    正则其实就是描述了一套规则,本质是操作字符串。

2.正则是干什么的? 操作字符串的

    (1)模式匹配 (表单验证)

    (2)文本检索

    (3)替换

3.正则的好处(为什么用它)

    简单,方便

    性能极高

4.字符串方法都有哪些

    substring(开始位置,[结束位置])

    substr(开始位置,个数)

    slice(开始位置,[结束位置])

    charAt(下标)

    indexOf()

    lastIndexOf()

    split()  ---转数组

    toLowerCase()

    toUpperCase()

    replace(把谁,替换成谁)

    trim()  去除收尾空格
  1. 正则怎么使用

    (1)  var reg=new RegExp('规则','选项');   通过构造函数创建(好处:可以放变量)
    
    (2)  var reg=/规则/选项                  通过字面量创建  (不可以放变量)
    
  2. 字符串方法中使用正则的

     (1)  str.search(正则);  搜索符合正则条件的字符串的下标  返回的是数字  没有找到返回-1
    
     类似indexOf 通过正则找下标
    
     (2)  str.match(正则)    挑,选出符合正则条件的字符串 返回的是数组  没有返回null
    
     (3.1)  str.replace(正则,替换成谁)  把符合正则条件的字符串替换成某个字符串
    
     (3.2)  str.replace(正则,function(s){
    
                    s  //是符合正则条件的字符串
    
            })
    
  3. 选项(模式):

    g global 全局

    i ignore 不区分大小写

    m mutil-line 多行

    选项不区分顺序

  4. 转译字符(元字符)

    \d    数字  [0-9]
    
    \s    空格
    
    \w    单词    [a-zA-Z0-9_]
    
    \D  非数字  [^0-9]
    
    \S  非空格
    
    \W  非单词  [^a-zA-Z0-9_]
    
    .代表所有,任意字符
    
    \.  代表的是 .
    
    \\  代表\
    
    \\\\  \\
    
    .\ / ? +  都要前面加 \ 转译
    

    如:http//

    转后:http//

  5. 量词

     {n}  正好n个  \d{3}--->\d\d\d
    
     {n,m} 最少n个最多m个
    
     {n,}  最少n个 多了不限
    
     {,n}  错×  字符串的个数不能出现负数
    
     {1,}  +  若干个  最少1个多了不限
    
     {0,1}  ?  可以没有,最多一个
    
     {0,}  *  可以没有 多了不限
    

10.1 [ ]

    有或的用法

    /[abc]/    /a|b|c/

    /a[bc]/  /ab|ac/

    /a[bc]d/  /abd|acd/

    /[a|b]/  a b |

10.2 范围的用法

   /[a-z]/  abcde....z

     /[0-9]/  \d

    /[1-38]/  1 2 3 8

10.3. 排除

   /[^0-9]/   表示排除0-9

总结: [ ]

       1、[]里面的东西都是或的形式

       2、[]里面和放范围

       3、[^]  不代表行首,代表除去里面的范围

       4、其他特殊符号代表本身
  1. 修饰符

     |  代表或
    
     ^  行首    注:如果^单独使用,代表字符串行首,配合m使用会识别段落
    
     $  行尾
    

12 ( )

1.分组()

        a+  aaaaa

        ab+  abbbbb

       (ab)+  abababab

  2 .匹配子级

        配合replace使用  str.replace(reg,function(s,a,b){

                        s是 整体

                        a是第一个括号的项

                        b是第二个括号的项

                })

  3.优选级   

  4. 重复的子项

       如:abbb       /(a)(b)\2+/    表示第二项重复

     aaaab       /(a)\1+(b)/    表示第一项重复
  1. 正则的校验

    强校验
    
    弱校验
    

14.正则有校验的方法

(1) 正则.test(字符串) 返回 true false

        test() 一般配合^ &

        功能:用于检测是否于正则匹配。

        返回:布尔值,true匹配,false不匹配

        语法:reg.test(检测的内容)

(2)正则.exec(字符串)

        功能:用于检测是否于正则匹配。

        返回:数组, 不匹配返回null

        语法:reg.test(检测的内容)
  1. 例子:

  2. QQ号校验 5-12

        /[1-9]\d{4,11}/
    
  3. 座机号 : 区号-座机号 如:010或1012 0289

       区号 (0[1-9]\d{1,2}-)?
    
        座机号  [1-9]\d{6,7}
    
        /^(0[1-9]\d{1,2}-)?[1-9]\d{6,7}$/
    
  4. 手机号

        /1[3-57-9]\d{9}/
    
  5. 中文校验

        [\u4e00-\u9fa5]
    
        一      龥
    

\u表示字符编码 4e00 和 9fa5 是十六进制编码

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值