正規表示式用於定義一些字串的規則,計算機可以根據正規表示式,來檢查乙個字串是否符合規則,獲取將字串中符合規則的內容提取出來
建立正規表示式: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...