• js之正则1


     
    在看jquery的源码时,看到对$对象的init入口对参数解析时,正则的迷惑。
    疑惑点:z = /^(?:s*(<[wW]+>)[^>]*|#([w-]*))$/
    a = z.exec(‘<div>’)    ——     ["<div>", "<div>", undefined]
    a.index     —  0       index 属性声明的是匹配文本的第一个字符的位置
    a.input     —  ‘<div>’ input 属性则存放的是被检索的字符串 string
    注:exec() 找到了匹配的文本,则返回一个结果数组。否则,返回 null。此数组的第 0 个元素是与正则表达式相匹配的文本,第 1 个元素是与 RegExpObject 的第 1 个子表达式相匹配的文本(如果有的话),第 2 个元素是与 RegExpObject 的第 2 个子表达式相匹配的文本(如果有的话),以此类推。
     
     
    [xyz] 表示匹配集合中的任意一个元素, [^xyz]反之.
    r = /[xyz]/   r.exec(‘xyz’)=[‘x’], r.exec(‘yz’)=[‘y’];
    r = /[^xyz]/  r.exec('xyz’)=null,  r.exec(‘abc’)=[‘a’].
     
    |  表示选择,或
    r = /ab|cd/   r.exec(‘cd’)=[‘cd']
     
    () 括号: 把单独的项目分组成子表达式; 在完整的模式中定义子模式
    r = /[a-z]+d+/       r.exec('asdf12’)=["asdf12"]
    r = /[a-z]+(d+)/    r.exec('asdf12’)=["asdf12", "12"]
    z=/(3)/             z.exec(‘3’)=[‘3’, ‘3']
    z=/(?:3)/           z.exec(‘3’)=[‘3']
    z=/(?:(3))/        z.exec(‘3’)=[‘3’, ‘3']
    有时候我们不希望捕获某些分组,只需要在分组内加上 ?: 就可以了,着并不意味着该分组内容不属于正则表达式,只是不会给这个分组加编号了而已
     
     
  • 相关阅读:
    vue+vant打包,vue+vant-ui小程序,微信支付
    vue+vant-ui移动端适配 宽高
    web前端面试题
    vue面试题及答案(1)
    vue的增删改查(简单版)
    Vue computed计算属性
    vue.cli的安装配置
    Create React App 安装时出现的错误解决方法
    运行node文件的多种方式
    怎么把node配置成全局打开
  • 原文地址:https://www.cnblogs.com/lyre/p/5458366.html
Copyright © 2020-2023  润新知