正則概念與應用
n 正則表達式(regular expression)是一個描述字符規則的對象。ECMAScript 的RegExp 類(構造函數)表示正則表達式,而String 和 RegExp 都定義了使用正則表達式進行強大的模式匹配和文本檢索與替換的函數。
n 正則表達式主要用來驗證客戶端的輸入數據。 用戶填寫完表單單擊提交按鈕之後, 表單就會被發送到服務器,在服務器端通常會用 PHP、ASP.NET 等服務器腳本對其進行進一步處理 。因為客戶端驗證,可以節約大量的服務器端的系統資源,並且提供更好的用戶體驗。
創建方式
n 使用RegExp這個對象,第一個參數就是我們的模式字符串(變量)
var |
n 第二個參數可選,模式修飾符
var reg = new RegExp('study', 'ig'); |
n i 表示忽略大小寫
n g 表示全局匹配
n m 表示多行匹配
還可以用字面量方式直接聲明(如果正則表達式中有變量則不可用此方式);
n var reg = /study/ig;
測試正則表達式
n test()方法在字符串中查找是否存在指定的正則表達式並返回布爾值,如果存在則返回 true,不存在則返回 false。
n exec()方法對一個指定的字符串執行一個正則表達式,簡言之,就是在一個字符串中執行匹配檢索。如果它沒有找到任何匹配返回null,如果找到一個匹配,它將返回一個數組。
exec和match的區別:
1、定義為非全局匹配時,exec和match執行的結果是一樣
2、exec與全局是否定義無關系,而match則於全局相關聯
function trim(str){
var reg=/^\s+|\s+$/g;
return str.replace(reg,'');
}
function post(str){
var reg=/^[1-9]\d{5}$/;
if(reg.test(str)){
return true;
}
return false;
1、 }
字符串的方法+正則表達式
n 使用 match 方法獲取匹配內容,返回數組
n 使用 search 來查找匹配數據,和全局沒有關系,查找第一個匹配值的位置。(-1)
n 使用 replace 替換匹配到的數據,2個參數:1代表正則,2代表用來s替換的字符
n 使用 split 拆分成字符串數組
獲取控制
字符類:單個字符和數字
元字符/元符號 | 匹配情況 |
. | 匹配除換行符外的任意字符 |
[a-z0-9] | 匹配括號中的字符集中的任意字符(小寫字母和數字) |
[^a-z0-9] | 匹配任意不在括號中的字符集中的字符 |
\d | 匹配數字 |
\D | 匹配非數字,同[^0-9]相同 |
\w | 匹配字母和數字及_ |
\W | 匹配非字母和數字及_ |
字符類:空白字符
元字符/元符號 | 匹配情況 |
\0 | 匹配null字符 |
\b | 匹配單詞邊界 |
\n | 匹配換行符 |
\s | 匹配空白字符、空格、制表符和換行符 |
\S | 匹配非空白字符 |
字符類:錨字符
元字符/元符號 | 匹配情況 |
^ | 行首匹配 |
$ | 行尾匹配 |
字符類:重復字符
元字符/元符號 | 匹配情況 |
x? | 匹配0個或1個x |
x* | 匹配0個或任意多個x |
x+ | 匹配至少一個x |
(xyz)+ | 匹配至少一個(xyz) |
x{m,n} | 匹配最少m個、最多n個x |
字符類:替代字符
元字符/元符號 | 匹配情況 |
this|where|logo | 匹配this或where或logo中任意一個 |
正則概念與應用