認識正規表示式(上)
本片介紹 javascript 裡的正規表示式
是什麼
遇到不認識的事物時,人們第一想到的可能是想知道這個東西,是什麼?但是,實際上定義一個東西很難,即使是較為恰當的描述,也可能是晦澀難懂的。本篇選擇直接略過這個問題。
而正規表示式作為一個“工具”,更為直接的描述方式是,這個東西能用來幹什麼,以及怎麼使用它。
功能
正規表示式可以用來描述一個字串。
比如:
- 以字母 A 開頭的字串
- 不包含數字的字串
- 包含大小寫字母、數字及特殊符號的字串
- 符合 email 地址規則的字串
- ……
顯然,正規表示式和字串的關係非同一般。字串上還有幾個方法,與正規表示式有關。
String 上的方法
search
可能你這麼用過 String.search 方法:
var str = 'aaa123aaa';
var index = str.search('123');
console.log(index); // 3
乍一看和 String.indexOf 差不多,確實這樣,如果 search 方法收到一個字串引數( 比如 A.search(B)
),會像 indexOf 一樣,返回 B 字串在 A 字串第一次出現的位置。和 indexOf 方法不同的是,search 方法可以接收正規表示式物件,假設有一個物件 R 表示“數字組成的字串”,那麼就會有下面的結果:
var R = xxxx; // 這裡先不考慮如何建立正規表示式物件
var str = 'aaa123aaa';
var index = str.search(R);
console.log(index); // 3
相同的,search 方法也可以用來檢索“非數字、字母”第一次出現的位置、“大寫字母第一次出現的位置”、“ ‘abc’ 或者 ‘bbc’ 或者 ‘ccc’ 第一次出現的位置” ……
replace
這個就是很常用的方法了:
var str = 'aaa123aaa';
var str2 = str.replace('123',0);
console.log(str2); // aaa0aaa
那麼上例中的 str2 同樣可以替換為一個正規表示式物件:把字串中的數字替換為xxx,把非數字、字母替換為 ""
(刪除非數字字母的字元)
match
碼者前兩天正好用到了這個方法,需求是獲取本頁路徑最後一個反斜槓後面的內容。先上碼:
var path = 'http://www.xxx.com/api/user/6'; // 也就是獲取 /6
var R= xxxx; // 此處的 R 假設表示“最後一個 / 以及後面的內容
var results = path.match(R);
var result = results[0];
console.log(result); // "/6"
不難理解:match 方法匹配正規表示式描述的子字串,並返回匹配到的結果。
RegExp 上的方法
在 javascript 裡,像有關數學方面的操作,我們會想到 Math 物件,比如 Math.ceil, Math.floor 方法;像有關日期的操作,我們會想到 Date 物件,比如 Date.now, Date.getTime;有一個叫 RegExp 的物件,用來封裝一些有關正規表示式方面的方法。
test
這是可能是正規表示式最簡單,使用率最高的方法了吧。比如註冊賬戶的時候,我們需要檢測一下使用者輸入的手機號是否是正確的格式。就可以:
var R = xxxx; // 一個用來描述手機號格式的正規表示式物件
var tel = '1564xxxx330';
var result = R.test(tel);
console.log(result); // true 或者 false
可以說,RegExp.test 就是用來檢驗一個字串的格式
exec
這是一個和 String.match 方法很像的方法,本文重點在對正規表示式的認識,不再贅述。
以上所有例子、方法都只大致介紹一個方法最基本的功能,其實正規表示式的功能遠比本文所說的強大很多很多,而且還有更多實用的方法。更詳細的內容請百度(不建議一開始就把所有功能記住,建議用到的時候看一下),比如搜尋關鍵字 js+match
如何建立 RegExp 物件
上面的內容是介紹正規表示式有什麼作用,以及一些簡單的使用方法。而正規表示式的難點,在於如何建立自己需要的正規表示式。請關注下篇。
相關文章
- 系統認識JavaScript正規表示式JavaScript
- 正規表示式學習筆記(1)-認識正則筆記
- 正規表示式知識(+)
- 正規表示式知識點
- javascript正規表示式 | 知識梳理JavaScript
- 正規表示式基礎知識
- Python正規表示式初識(四)Python
- 正規表示式(一) 基礎知識
- 正規表示式
- 正規表示式.
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- 正規表示式基礎知識總結
- php –正規表示式PHP
- 【Linux】正規表示式Linux
- 【JavaScript】正規表示式JavaScript
- URL正規表示式
- 正規表示式 split()
- 初探正規表示式
- 正規表示式 test()
- 正規表示式(?!)作用
- 正規表示式 {n,}
- SQL正規表示式SQL
- 正規表示式(java)Java
- Python——正規表示式Python
- PHP正規表示式PHP
- 正規表示式概括
- javascript正規表示式JavaScript
- java正規表示式Java
- Shell正規表示式
- 常用正規表示式
- 正規表示式合集
- python正規表示式Python
- 【java】正規表示式Java
- MySQL正規表示式MySql
- JavaScript 正規表示式JavaScript
- 正規表示式 教程
- Python 正規表示式Python
- 正規表示式(一)