js基礎(正規表示式)

2022-07-18 06:03:09 字數 4941 閱讀 3452

正規表示式用於定義一些字串的規則,計算機可以根據正規表示式,來檢查乙個字串是否符合規則,獲取將字串中符合規則的內容提取出來

建立正規表示式:var reg = new regexp(「正規表示式」, "匹配模式");

使用正規表示式檢測正則物件,會返回object

console.log(typeof new regexp("ab","i"));  //

object

/*

* 在建構函式中可以傳遞乙個匹配模式作為第二個引數,

* 可以是

* i 忽略大小寫

* g 全域性匹配模式 */

var reg = new regexp("a","i");

var str = "a";

/** 正規表示式的方法:

* test()

* - 使用這個方法可以用來檢查乙個字串是否符合正規表示式的規則,

* 如果符合則返回true,否則返回false */

var result =reg.test(str);

console.log(result);

//true

console.log(reg.test("ac")); //

true

使用字面量建立正規表示式:var reg = /正規表示式/匹配模式

var reg = /a/i;

console.log(typeof reg);

console.log(reg.test("abc"));

正規表示式的語法

/*

* 使用 | 表示或者的意思

*/reg = /a|b|c/;

/** 裡的內容也是或的關係

* [ab] == a|b

* [a-z] 任意小寫字母

* [a-z] 任意大寫字母

* [a-z] 任意字母

* [0-9] 任意數字

*/reg = /[a-z]/;

/** [^ ] 除了

*/reg = /[^ab]/;

reg = /[^0-9]/;

字串和正規表示式的相關的方法

/*

* split()

* - 可以將乙個字串拆分為乙個陣列

* - 方法中可以傳遞乙個正規表示式作為引數,這樣方法將會根據正規表示式去拆分字串

* - 這個方法即使不指定全域性匹配,也會全都插分 */

/** 根據任意字母來將字串拆分 */

var str = "1a2b3c4d5e6f7";

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

console.log(result);

//["1", "2", "3", "4", "5", "6", "7"]

/** search()

* - 可以搜尋字串中是否含有指定內容

* - 如果搜尋到指定內容,則會返回第一次出現的索引,如果沒有搜尋到返回-1

* - 它可以接受乙個正規表示式作為引數,然後會根據正規表示式去檢索字串

* - serach()只會查詢第乙個,即使設定全域性匹配也沒用 */

str = "hello abc hello aec afc";

/** 搜尋字串中是否含有abc 或 aec 或 afc */

result = str.search(/a[bef]c/);

console.log(result); //6

/** match()

* - 可以根據正規表示式,從乙個字串中將符合條件的內容提取出來

* - 預設情況下我們的match只會找到第乙個符合要求的內容,找到以後就停止檢索

* 我們可以設定正規表示式為全域性匹配模式,這樣就會匹配到所有的內容

* 可以為乙個正規表示式設定多個匹配模式,且順序無所謂

* - match()會將匹配到的內容封裝到乙個陣列中返回,即使只查詢到乙個結果

* * */

str = "1a2a3a4a5e6f7a8b9c";

result = str.match(/[a-z]/ig);

console.log(result);

//["a", "a", "a", "a", "e", "f", "a", "b", "c"]

/** replace()

* - 可以將字串中指定內容替換為新的內容

* - 引數:

* 1.被替換的內容,可以接受乙個正規表示式作為引數

* 2.新的內容

* - 預設只會替換第乙個

*///

result = str.replace(/[a-z]/gi , "@_@");

result = str.replace(/[a-z]/gi , "");

console.log(result);

//123456789

正規表示式語句:

/*

* 量詞

* - 通過量詞可以設定乙個內容出現的次數

* - 量詞只對它前邊的乙個內容起作用

* - 正好出現n次

* - 出現m-n次

* - m次以上

* - + 至少乙個,相當於

* - * 0個或多個,相當於

* - ? 0個或1個,相當於 */

/** 檢查乙個字串中是否以a開頭

* ^ 表示開頭

* $ 表示結尾

*//*

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

*/reg = /^a$/;

/** 手機號的規則:

* 1 3 567890123 (11位)

*

* 1. 以1開頭

* 2. 第二位3-9任意數字

* 3. 三位以後任意數字9個

* * ^1 [3-9] [0-9]$

* */

/** 檢查乙個字串中是否含有 .

* . 表示任意字元

* 在正規表示式中使用\作為轉義字元

* \. 來表示.

* \\ 表示\

* * 注意:使用建構函式時,由於它的引數是乙個字串,而\是字串中轉義字元,

* 如果要使用\則需要使用\\來代替 */

var reg = /\./;

reg = /\\/;

reg = new regexp("\\.");

reg = new regexp("\\\\");

/** \w

* - 任意字母、數字、_ [a-z0-9_]

* \w

* - 除了字母、數字、_ [^a-z0-9_]

* \d

* - 任意的數字 [0-9]

* \d

* - 除了數字 [^0-9]

* \s

* - 空格

* \s

* - 除了空格

* \b

* - 單詞邊界

* \b

* - 除了單詞邊界 */

/** 建立乙個正規表示式檢查乙個字串中是否含有單詞child */

reg = /\bchild\b/;

//去除空格就是使用""來替換空格

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

//去除開頭的空格

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

//去除結尾的空格

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

///^\s*|\s*$/g 匹配開頭和結尾的空格

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

/** 電子郵件

* hello .nihao @ abc .com.cn

* * 任意字母數字下劃線 .任意字母數字下劃線 @ 任意字母數字 .任意字母(2-5位) .任意字母(2-5位)

* * \w (\.\w+)* @ [a-z0-9]+ (\.[a-z]) */

var emailreg = /^\w(\.\w+)*@[a-z0-9]+(\.[a-z])$/;

var email = "[email protected]";

console.log(emailreg.test(email));

js基礎 正規表示式

正規表示式用於定義一些字串的規則。計算機可以根據正規表示式來檢查乙個字串是否符合規則 正規表示式也可以將符合條件的字串的內容提取出來。結果 true 結果 falsen 匹配任何包含至少乙個 n 的字串。n 匹配任何包含零個或多個 n 的字串。n?匹配任何包含零個或乙個 n 的字串。n匹配包含 x ...

JS基礎 正規表示式

簡介 正規表示式 regular expression 描述了一種字串匹配的模式,可以用來檢查乙個字串是否含有某種子串 將匹配的子串做替換或者從某個字串中取出符合某個條件的子串等。在 js 中,regexp 物件和 string 物件的一些方法,如 search match replace 等都支援...

JS基礎 正規表示式

正規表示式用於定義一些字串的規則,計算機可以根據正規表示式,來檢查乙個字串是否符合規則,或者將字串中符合規則的內容提取出來 建立正規表示式的物件 語法 var 變數 new regexp 正規表示式 匹配模式 使用typeof檢查正則物件,會返回object var reg new regexp a...