美文网首页
正则表达式

正则表达式

作者: baby熊_熊姐 | 来源:发表于2017-08-03 18:23 被阅读27次

    正则表达式中重要的方法,平时容易忘记,做了次小小的整理

    正则方法

    • match
    • replace
    • search
    • split

    (?=p)正向先行断言,要求接下来的字符串都与p匹配
    (?!p) 负向先行断言,要求接下来的字符串都与p不匹配

    var text = "JavaScript"
    var pattern = /script/i

    正则表达式使用圆括号括起来的子表达式带有从左到右的索引编号,且会记忆每个子表达式的文本,通常用" $"+数字表示记忆的部分

    • text.search(pattern)
      返回第一个与之匹配子串的起始位置,如果找不到,则返回-1
    • text.replace(pattern, newText)
      替换匹配的部分, 第二个参数可以是原字符串中记忆部分,也可以是函数
    // 将单词的所有首字母大写
    text.replace(/\b\w+\b/g, function(word) {
       return word.substring(0,1).toUpperCase() + word.substring(1)
    })
    
    
    • text.match(pattern)
      匹配表达式,若不开启全局检索,则只匹配一次,若匹配不成功则返回null, 若匹配成功,则返回包含这次匹配的数组,数组第一项是匹配的字符串,之后几项依次是匹配圆括号的部分
      若开启全局检索,也会返回一个数组,数组元素是每一个匹配的字符串,不会包含圆括号字符串。
    var url = /(\w+):\/\/([\w.]+)\/(\S*)/
    var text = "Visit my home page at http://www.isp.com/~david"
    
    var result = text.match(url)
    if(result !== null){
      var fullurl = result[0]
      var protocol = result[1]
      var host = result[2]
      var path = result[3]
    }
    
    • text.split(pattern)
      将字符串用给定匹配分割成数组
    "1,2,3,4,5".split(/\s*,*\s/)   // ["1", "2","3","4","5"]
    
    • pattern.text(text)
      测试是否与正则匹配,返回布尔值

    字符串的书写方式
    传入字符串的正则表达式,用“"字符作为转义字符的前缀
    var pattern = new RegExp("\d{5}", "g")

    相关文章

      网友评论

          本文标题:正则表达式

          本文链接:https://www.haomeiwen.com/subject/vzoulxtx.html