正規表示式
1. 正規表示式用於定義一些字串的規則:計算機可以根據正規表示式,來檢查一個字串是否符合規則,將字串中符合規則的內容提取出來。
2. 建立正規表示式物件:
var reg=new RegExp("正規表示式","匹配模式"); //結果:/內容/
匹配模式:值:i:忽略大小寫
g:全域性匹配模式
使用字面量來建立正規表示式:
語法:var 變數=/正規表示式/匹配模式;
var express=/a/i;
var result=express.test("abcdse");
console.log(result);
檢查一個字串中是否有a或b:
var express=/a|b|c/i;
或var express=/[ab]/i;
檢查是否有字母:[A-z]
檢查是否有abc,adc,aec:
var express=/a[bde]c/i;
[^ab]:除了ab以外都為true
[0-9]:任意數字
[a-z]:任意小寫字母
3. 正規表示式的方法:test( )使用這個方法可以用來檢查一個字串是否符合正規表示式,符合返回true,不符合返回false;
var str='a'; //用來檢驗字串中是否含有a
var result=reg.test(str);
console.log(result);
4. 字串與正規表示式
split:把字串分割為字串陣列。
根據字母拆分字串: //不指定全域性匹配也會全部改變
var express='a1b2n3v4b5c5g7';
result=express.split(/[0-9]/);
console.log(result);
search:搜尋字串中是否含有指定內容
若搜尋到指定內容,則返回第一次出現的索引,若沒有搜尋到返回-1
只會查詢第一個
var express="a1 b2 n3 v4 b5 c5g7";
result=express.search('a1');
console.log(result);
var express="a1 b2 abc v4 aec c5g7";
result=express.search(/a[be]c/);
console.log(result);
match( ):根據正規表示式,從一個字串中將符合條件的內容提取出來
預設情況下只會找到第一個符合要求的內容,找到以後就停止檢索,將正規表示式設定為全域性匹配,就會匹配到所有內容。
會將匹配到的內容封裝到一個陣列中返回,即使只搜尋到一個結果。
var express="a1b2abcv4aecc5g7";
result=express.match(/[A-z]/gi);
console.log(result);
replace():將字串中指定內容替換為新的內容。
引數:被替換的內容,可以接受一個正規表示式作為引數
新內容
預設只替換第一個
var express="a1b2abcv4aecc5g7";
result=express.replace(/b/gi,"g"); //刪除字母:新內容為“”
console.log(result);
5. 量詞:通過量詞可以設定一個內容出現的次數:{n}正好出現n次,量只對它前面一個內容起作用;(ab){3}==ababab;
ab{1,3}c:出現一次到三次b
ab{3, }c:出現三次以上b
ab+c:出現至少一個b
ab*c:出現0個或多個b
ab?c:出現0個或1個b
^a:以a開頭
a$:以a結尾
^a|a$:以a開頭或者以a結尾
^a$:只能是一個a
var str=/a{3}/;
6. 檢查一個字串是否為一個合法手機號
以1開頭 ^1
第二位3-9任意數字 [3-9]
三位以後任意數字 [0-9]{9}$
var reg=/^1[3-9][0-9]{9}$/;
console.log(reg.test('13953975005'));
7. 檢查一個字串中是否含有.
. 表示任意字元
使用 \ 來表示轉義字元,使用 \ . 來表示 .
在建構函式要使用 \ 要利用 \\ 來代替
\w |
任意數字、字母、_、[A-z 0-9] |
\W |
除了任意數字、字母、_、[A-z 0-9] |
\d |
任意數[ 0-9] |
\D |
除了任意數[ 0-9] |
\s |
空格 |
\S |
除了空格 |
\b |
單詞邊界 |
\B |
除了單詞邊界 |
var reg=/\bchild\b/;
console.log(reg.test('hello children'));
8. 接收一個使用者的輸入
var str=prompt("請輸入你的使用者名稱:");
//去除字串中前後的空格,使用“”替換空格
str=str.replace(/^\s*|\s*$/g,"");
console.log(str);
9. 寫一個電子郵件的正則
任意的字母數字下劃線 . 任意的字母數字下劃線@ 任意字母數字 .任意字母(2-5). 任意字母(2-5)
\w{3,} (\.\w+)* @ [A-z0-9]+ ( \.[A-z]{2-5}){1,2}
可以在網上搜尋