1. 程式人生 > >js正則表達式總結

js正則表達式總結

浮點 找單詞 js正則表達式 字母 abc brush 之間 clas js正則

新建正則表達式

var reg = /正則表達式/(g,i,m)

var reg = RegExp(‘mutations’,(g,i,m))

g全局匹配不加代表只匹配第一個

i忽略大小寫

m多行匹配

1.驗證

用於驗證時,通常需要在前後分別加上^和$,用於匹配整個待驗證字符串;

2.搜索替換

要在前後加上\b

字符類匹配

[…] 查找方括號之間的任何字符
[^…] 查找任何不在方括號之間的字符
[a-z] 查找任何從小寫 a 到小寫 z 的字符
[A-Z] 查找任何從大寫 A 到大寫 Z 的字符
[A-z] 查找任何從大寫 A 到小寫 z 的字符
. 查找單個字符,除了換行和行結束符
\w 查找單詞字符,等價於[a-zA-Z0-9]
\W 查找非單詞字符,等價於[^a-zA-Z0-9]
\s 查找空白字符
\S 查找非空白字符
\d 查找數字,等價於[0-9]
\D 查找非數字字符,等價於[^0-9]
\b 匹配單詞邊界
\r 查找回車符
\t 查找制表符
\0 查找 NULL 字符
\n 查找換行符

重復字符匹配

{n,m} 匹配前一項至少n次,但不能超過m次
{n,} 匹配前一項n次或更多次
{n} 匹配前一項n次
n? 匹配前一項0次或者1次,也就是說前一項是可選的,等價於{0,1}
n+ 匹配前一項1次或多次,等價於{1,}
n* 匹配前一項0次或多次,等價於{0,}
n$ 匹配任何結尾為 n 的字符串
^n 匹配任何開頭為 n 的字符串
?=n 匹配任何其後緊接指定字符串 n 的字符串
?!n 匹配任何其後沒有緊接指定字符串 n 的字符串

‘abc123‘.replace(/\w(?=\d)/,‘123‘)
"ab123123"
‘abc123‘.replace(/\w(?!\d)/,‘123‘)
"123bc123"

  

匹配特定數字

^[1-9]\d*$    匹配正整數
^-[1-9]\d*$   匹配負整數
^-?[0-9]\d*$   匹配整數
^[1-9]\d*|0$  匹配非負整數(正整數 + 0)
^-[1-9]\d*|0$   匹配非正整數(負整數 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$  匹配正浮點數
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 匹配負浮點數
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  匹配浮點數
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   匹配非負浮點數(正浮點數 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  匹配非正浮點數(負浮點數 + 0)

匹配特定字符串

^[A-Za-z]+$  匹配由26個英文字母組成的字符串
^[A-Z]+$  匹配由26個英文字母的大寫組成的字符串
^[a-z]+$  匹配由26個英文字母的小寫組成的字符串
^[A-Za-z0-9]+$  匹配由數字和26個英文字母組成的字符串
^\w+$  匹配由數字、26個英文字母或者下劃線組成的字符串

分組 ()()() $1$2$3

測試 reg.test()

var reg = /abc/g;
    var str = "123abc456abc";
    console.log(reg.lastIndex);//0
    console.log(reg.test(str));//true
    console.log(reg.lastIndex);//6
    console.log(reg.test(str));//true
    console.log(reg.lastIndex);//12
    console.log(reg.test(str));//false

 reg.exec()

var str = "xyz";
  var reg1 = /x/;
  var reg2 = /a/;
  var res1 = reg1.exec(str);
  var res2 = reg2.exec(str);
  console.log(res1);//["x", index: 0, input: "xyz"]
  console.log(res2);//null

  reg.search()

var str = "abcdcef";
  console.log(str.search(/c/g));//2

  

js正則表達式總結