正则表达式

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

正则方法

  • 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")

你可能感兴趣的:(正则表达式)