js正則運算式
這是關于js的正則運算式的介紹性質的代碼,因為內容較多,所以準備分為上下兩篇介紹完正則的基礎使用,后續還會推出正則實戰的文章,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--
正則的用處:
檢驗一個字串是否符合規則
獲取字串中符合規則的內容
-->
<script>
/*
創建正則運算式的物件
語法:
var 變數 = new RegExp("正則運算式","匹配模式");
1.使用typeof檢查正則物件,會回傳object
2.匹配模式:
i : 忽略大小寫
g : 全域匹配
m : 執行多匹配
*/
var reg = new RegExp("a"); //匹配 a ;
var str = "a";
/*
正則運算式的方法:
test()
----使用這個方法可以用來檢查一個字串是否符合正則運算式的規則,
如果符合則回傳true,否則回傳false
*/
var result = reg.test(str);
console.log(result); // 控制臺輸出true;
/*
使用字面量創建正則運算式
語法: var 變數 = /正則運算式/匹配模式
*/
// 1. ab 必須有 ab
reg = /ab/;
console.log("----- 1 -----");
console.log(reg.test("abcd")); // true
console.log(reg.test("bacd")); // false
// 2. a|b 有a或b
reg = /a|b/;
console.log("----- 2 -----");
console.log(reg.test("cd")); // false
console.log(reg.test("acd")); // true
console.log(reg.test("bcd")); // true
console.log(reg.test("bacd")); // true
// 3. [a-d] a到d的任意字母
reg1 = /[a-z]/; //存在任意小寫字母
reg2 = /[A-Z]/; //存在任意大寫字母
reg3 = /[A-z]/; //存在任意字母
console.log("----- 3 -----");
console.log(reg1.test("12ab")); // true
console.log(reg2.test("12AB")); // true
console.log(reg3.test("12Ab")); // true
console.log(reg3.test("12")); // false
// 4. /a[bde]c/
reg = /a[bde]c/; // 需要有 abc或adc或aec,此時括號內的字母必須只有一個
console.log("----- 4 -----");
console.log(reg.test("abc")); // true
console.log(reg.test("abdc")); // false
console.log(reg.test("cabc")); // true
console.log(reg.test("ac")); // false
// 5. [^ab] 除了ab以外的東西
reg = /[^ab]/ //存在除了ab以外的字符
console.log("----- 5 -----");
console.log(reg.test("abc")); // true
console.log(reg.test("ab")); // false
console.log(reg.test("c")); // true
// 6. [^0-9] 存在不是數字的字符
reg = /[^0-9]/;
console.log("----- 6 -----");
console.log(reg.test("12")); // false
console.log(reg.test("as12")); // true
console.log(reg.test("ac")); // true
/*
正則方法:
split() 可以將一個字串拆分為一個陣列
search() 搜索字串中是否含有指定內容
match() 從一個字串中將符合條件的內容提取出來
replace("被替換的內容","新的內容") 將字串指定內容替換為新的內容
*/
// 1. split() 傳遞常量則按常量拆,傳遞正則運算式則按正則運算式拆
var str = "1a2b3c4d5e6f";
var result = str.split("c");
console.log("----- split() -----");
console.log(result); // 結果是 Array["1a2b3","4d5e6f"] 注意:C被去掉了
var result = str.split(/[a-z]/); //按字母拆
console.log(result); // 結果是 Array(7) {"1","2","3","4","5","6",""};
var str = "10101010101";
var result = str.split(1); //無需設定全域匹配即可拆所有的指定字符
console.log(result); // 結果是 Array(7) {"","0","0","0","0","0",""};
// 2. search() 搜索字串中是否含有指定內容,如果搜索到指定內容,則回傳第一次出現的內容,沒搜索到就回傳-1
str = "hello abc hello abc";
result = str.search("abc");
console.log("----- search() -----");
console.log(result); // 輸出6
str = "hello abc hello aec afc";
result = str.search(/a[bef]c/); // 搜索是否含有abc或aec或afc
console.log(result); // 輸出6
// 3. match() 可以根據正則運算式,從一個字串中將符合條件的內容提取出來
var str = "1a2b3c4d5e6f";
result = str.match(/[A-z]/); // 提取其中符合條件的第一個英文字母
console.log("----- match() -----");
console.log(result);
result = str.match(/[A-z]/g); // 提取其中符合條件的所有英文字母 :全域匹配
console.log(result);
console.log(Array.isArray(result)); // 回傳 true
console.log(result[1]); // 輸出 b
// 4. replace("被替換的內容","新的內容") 將字串指定內容替換為新的內容
var str = "1a2b111ABC";
result = str.replace("1a2b","0");
console.log("----- replace() -----");
console.log(result); // 回傳 0111ABC
result = str.replace(/a/gi,"0");
console.log(result); // 回傳 102b1110BC
</script>
</body>
</html>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/279827.html
標籤:其他
上一篇:vue2.x 從vue.config.js配置到專案優化
下一篇:.net實作動態驗證碼
