正则表达式:使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。

语法

  /正则表达式主体/修饰符(可选)

正则表达式修饰符

修饰符 描述
i 忽略大小写
g

全局搜索,不会在匹配上第一次的时候就停止匹配

m 执行多行匹配

var a = /H/i
var b = /H/
var c = 'hgdyjasggdjhsskhds'
console.log(a.test(c))  // true
console.log(b.test(c))  // false

var d = /h/
var e = /h/g
console.log(c.replace(d,'QQ'))  // QQgdyjasggdjhsskhds
console.log(c.replace(e,'QQ'))  // QQgdyjasggdjQQsskQQds
View Code

表示字符

字符 功能
. 匹配任意字符(除了\n)
[] 匹配[]中列举的字符
\d 匹配数字,0-9
\D 匹配非数字
\s 匹配空白,即空格 tab键
\S 匹配非空白
\w 匹配单词字符,即a-z,A-Z,0-9,_
\W 匹非飞单词字符
var str = "ai shang dui fang guo hou jiu ku le & * % ^ ¥ # @ !$"
var a = /./g

console.log(a.test(str)) // true
console.log(str.replace(a, 'q'))    // qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq

var b = /[&*]/g

console.log(str.replace(b, ' '))    // ai shang dui fang guo hou jiu ku le     % ^ ¥ # @ !$

var str2 = "1234"
var str3 = " 12345 "

console.log(/\d/g.test(str2))   // true
console.log(/\D/.test(str2))    // false
console.log(/\D/.test(str3))    // true

console.log(/\s/.test(str3))    // true
console.log(/\S/.test(" "))     // false

console.log(/\w/.test("123aD_"))    // true
console.log(/\W/.test("123aD_"))    // false
console.log('*********************')
console.log(/\w/.test("*&"))        // false
console.log(/\W/.test("*&"))        // true
View Code

表示次数

字符 功能
*  匹配前一个字符0次或无限次,即可有可无
+  匹配前一个字符1次或无限次,即至少出现1次
?  匹配前一个字符0次或1次,即要么出现一次,要么没有
{m}  匹配前一个字符出现m次
{m,}  匹配前一个字符至少出现m次
{m,n}  匹配前一个字符出现m到n次

表示边界

字符 功能
$ 以前面的一个字符结尾
^ 以后面的一个字符开头
\b 匹配一个单词的边界
\B 匹配非单词边界

匹配分组

字符 功能
 | 匹配左右两边任意一个字符
 () 将()中的字符作为一个整体
 \. 将 . 转义不在是匹配任意字符

字符串方法

  

  search():用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。

  var str = "zhangsan"
  console.log(str.search('a')) // 2
  
  replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
  
  var str = "zhangsan"
  console.log(str.replace('a', 'A')) // zhAngsan
  console.log(str.replace(/a/, 'A')) // zhAngsan
 
  match():用于检测一个字符串中是否有某个模式或者某个字符串,如果匹配成功则返回一个数组否则返回null
  
var str = "zhangsan"
var m = str.match('a')
console.log(m)      // [ 'a', index: 2, input: 'zhangsan' ]
console.log(m[0])   // a
console.log(m[1])   // undefind
console.log(m.index)    // 2
View Code

  split():用来把字符串用某种某种模式或者以某些字符拆分,匹配成功则返回一个数组否则将整个字符串放到数组中返回

var str = "zhang san"
var ss1 = str.split(' ')
var ss2 = str.split(/\s/)
var ss3 = str.split('l')

console.log(ss1)     // [ 'zhang', 'san' ]
console.log(ss2)     // [ 'zhang', 'san' ]
console.log(ss2 instanceof Array)    // true

console.log(ss3)    // [ 'zhang san' ]
View Code

 

RegExp 对象

  test():是一个正则表达式方法,用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

  

  exec():方法是一个正则表达式方法,用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

posted on 2018-08-30 17:13  qweradf  阅读(173)  评论(0)    收藏  举报