JavaScript基礎-06-正規表示式

花未眠0619發表於2020-08-12

正規表示式


 

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

 

2. 建立正規表示式物件:

var reg=new RegExp("正規表示式","匹配模式");  //結果:/內容/

 

匹配模式:值:i:忽略大小寫

g:全域性匹配模式

 

使用字面量來建立正規表示式:

語法:var 變數=/正規表示式/匹配模式;

var express=/a/i;

var result=express.test("abcdse");

console.log(result);

 

檢查一個字串中是否有ab:

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}

可以在網上搜尋

相關文章