正则表达式
2017-08-03 本文已影响27人
baby熊_熊姐
正则表达式中重要的方法,平时容易忘记,做了次小小的整理
正则方法
- 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")