正則表達式(Regular Expression)

正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫爲regex、regexp或RE),計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。
許多程序設計語言都支持利用正則表達式進行字符串操作

創建正則表達式的對象

使用構造函數創建正則表達式
語法:
var 變量 = new RegExp(“正則表達式”,“匹配模式”);
在構造函數中可以傳遞一個匹配模式作爲第二個參數
i 忽略大小寫
g 全局匹配模式

使用字面量來創建正則表達式
語法: var 變量 = /正則表達式/匹配模式
字面量創建簡單但是函數構造創建更靈活

	/*
        []裏的內容也是或的關係
        [ab] == a|b
        [a-z] 任意小寫字母
        [A-z] 任意大寫字母
    */
    reg = /a/i;
    reg = /[A-z]/

    //檢查一個字符串中是否含有abc或adc或afc
    reg = /a[bdf]c/

    //[^ ]除了
    console.log(reg.test("asckhljliu "));

字符串和正則表達式相關的方法
split()
-將一個字符拆分爲數組
-方法中可以傳遞一個正則表達式作爲參數

var result = str.split(/[A-z]/);

search()
-搜索是否含有指定內容
- 搜索到指定內容,則會返回第一次出現的索引,沒有搜到則返回-1
serch()只會查到第一個,即使設置全局匹配也沒用

str = "hello hi abc aec afc";
result = str.search(/a[bef]c/);

match()
-根據正則表達式,從一個字符串中將符合條件的內容提取出來
- 默認情況下match只會找到第一行符合要求的內容,找到以後就停止搜索
-可以設置正則表達式爲全局匹配模式
-match()會將匹配到的內容封裝到一個數組中返回

str = "1a2b3c4d5A6B";
result = str.match(/[A-z]/ig);

replace()
-可以將字符串中指定內容替換爲新的內容
-參數
1.被替換的內容可以接收一個正則表達式作爲參數
2.新的內容

result = str.replace(/a/ig,"!");

量詞
通過量詞可以設置一個內容出現的次數
量詞只對它前邊的內容起作用
{n} 正好出現n次
{m,n} 出現m-n次
+ 至少一個,相當於{1,}
* 0個或多個,相當於{0,1}
? 0個或一個,相當於{0,1};

^ 表示開頭
$ 表示結尾

reg = /^a/;//匹配開頭的a
reg = /a$/;//匹配結尾的a

如果在正則表達式中同時使用^ $則要求字符串必須完全符合正則表達式

reg = /^a$/;
console.log(reg.test("a"));

創建一個正則表達式,判斷手機號是否合法

var phone = "13931338404";
var phoneReg = /^1[3-9][0-9]{9}$/;
console.log(phoneReg.test(phone));

檢查一個字符串中是否含有 .
在正則表達式中使用\作爲轉義字符
.來表示.
\ 表示\

var reg = /\./;
console.log(reg.test("b."));

\w
- 任意字母,數字,_ [A-z0-9_]
\W
- 除了字母,數字,_
\d
- 任意的數字[0-9]
\D
- 除了數字[^0-9]
\s
- 空格
\S
- 除了空格
\b
- 單詞邊界
\B
- 除了單詞邊界

創建一個正則表達式檢查一個字符串中是否含有單詞child

reg = /\bchild\b/;
console.log(reg.test("children"));

去掉開頭的空格

str = str.replace(/^\s*/,"");

去掉結尾的空格

str = str.replace(/\s*$/,"");

去掉開頭和結尾的空格

str = str.replace(/^\s*|\s*$/g,"");
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章