JavaScript高階學習(五) 正規表示式

2021-09-24 08:54:22 字數 3617 閱讀 5366

元字元

符號意義例子.

除\n以外的任意乙個字元

表示範圍

[0-9]:表示0-9之間的任意乙個數字

消除正規表示式中的元字元的意義

[.]:表示.|或者

[0-9]|[a-z]:表示是乙個數字或者乙個小寫字母

()分組

([0-9])([1-5]):兩組,從最左邊開始計算

提公升優先順序

[0-9]|([a-z])|[a-z]:小寫字母優先順序最高

限字元限字元也是元字元的一種

符號意義例子*

表示式出現0到多次

[a-z][0-9]*:小寫字母任意乙個,後面的數字出現0次或多次

+表示式出現1到多次

[a-z][0-9]+:小寫字母任意乙個,後面的數字出現1次或多次

?表示式出現0到1次

[a-z][0-9]?:小寫字母任意乙個,後面的數字出現0次或1次

阻止貪婪模式

{}表示表示式出現的次數

:相當於*

:相當於+

:相當於?

^表示表示式以什麼開始

^[0-9]:以數字開始

取非[^0-9]:非數字

$表示表示式以什麼結束

[0-9]$:以數字結束

\d數字中的任意乙個

相當於[0-9]

\d非數字中的任意乙個

\s空白符中的任意乙個

空格、tab等

\s非空白符

\w非特殊符號

[相當於[a-za-z0-9_]

\w特殊符號

相當於[^a-za-z0-9_]

\b單詞的邊界

\t水平製表符

\轉義符

\f換頁 練習

1.身份證號:15—18位

([1-9][0-9])([0-9][0-9xx])?

2.座機號碼:010-19876754 或 0431-87123490

[0-9][-][0-9]

3.qq號碼:5-11位

[1-9][0-9]

4.郵箱

[0-9a-za-z_.-]+[@][0-9a-za-z_.-]+([.][a-za-z]+)

建立正規表示式物件

regexp

test()匹配方法,返回值為boolean

var reg=

newregexp

(/\d/);

var str=

"我的**號碼是:10086"

;var flag=reg.

test

(str)

;console.

log(flag)

;//true

//(/\d/)*****("\\d")

var reg=

/\d/

;var flag=reg.

test

("我的**號碼是:888");

console.

log(flag)

;//true

驗證密碼強中弱

驗證密碼強中弱

驗證表單

驗證表單

字串中使用正規表示式

1.match() 方法可在字串內檢索指定的值,或找到乙個或多個正規表示式的匹配。

在正規表示式中,g表示的是全域性模式匹配

var str=

"中國移動:10086,中國聯通:10010"

;var array=str.

match

(/\d/);

//["10086"]

var array1=str.

match

(/\d/g);

//["10086","10010"]

提取日期中的日:

在正規表示式中,()有分組的意思,可以通過regexp.$num來提取其中乙個組

var str=

"2017-11-12"

;var array=str.

match

(/(\d)[-](\d)[-](\d)/g);

console.

log(regexp.$3);

//12

2.replace() 方法用於在字串中用一些字元替換另一些字元,或替換乙個與正規表示式匹配的子串。

var str=

"小蘇好帥哦,真的是太帥了,帥,就是真帥"

; str=str.

replace

(/帥/g

,"美");

console.

log(str)

;//小蘇好美哦,真的是太美了,美,就是真美

在正規表示式中,i表示的修改為大小寫不敏感

var str=

"hhpphh"

; str=str.

replace

(/[h]/gi

,"s");

console.

log(str)

;//ssppss

3.exec()方法用於檢索字串中的正規表示式的匹配。

//把裡面所有的數字全部顯示出來

var str =

"中國移動:10086,中國聯通:10010,中國電信:10000"

倘若在之後再新增一句console.log(reg.exec(str));,結果為:[「10086」]

以上**也可以寫為

var str =

"中國移動:10086,中國聯通:10010,中國電信:10000"

;var reg=

/\d/g

;//通過正規表示式匹配這個字串

陣列和偽陣列

陣列和為陣列的區別

JavaScript學習記錄五

程式設計思想 把一些生活中做事的經驗融入到程式中 面向過程 凡事都要親力親為,每件事的具體過程都要知道,注重的是過程 物件導向 根據需求找物件,所有的事都用物件來做,注重的是結果 物件導向特性 封裝,繼承,多型 抽象性 js不是物件導向的語言,但是可以模擬物件導向的思想 js是一門基於物件的語言 萬...

JavaScript高階程式設計學習筆記

雖然object建構函式或物件字面量都可以用來建立單個物件,但這些方式有個明顯的缺點 使用同乙個介面建立很多物件,會產生大量的重複 為解決這個問題,人們開始使用 工廠模式的一種變體。function createperson name,age,job returno var person1 crea...

Javascript高階程式設計學習筆記(二)

屬性型別 1,資料屬性 var person configurable 表示能否通過 delete 刪除屬性從而重新定義屬性,能否修改屬性的特性,或者能否把屬性修改為訪問器屬性。如上直接在物件上定義的屬性,預設為 true。enumerable 表示能否通過 for in 迴圈返回屬性。如上直接在物...