鍍金池/ 教程/ HTML/ 正則表達(dá)式
書(shū)單
JavaScript 動(dòng)畫(huà)
HTML
CSS Reset
屬性操作
DOM 事件
閉包
Photoshop
Atom 文本編輯器
表單操作
布局解決方案
類(lèi)型系統(tǒng)
開(kāi)發(fā)實(shí)踐
數(shù)據(jù)通信
變量作用域
BOM
JavaScript 程序設(shè)計(jì)
前端工程師概述
CSS
響應(yīng)式布局
表達(dá)式與運(yùn)算符
基本語(yǔ)法
JavaScript 介紹
版本控制
布局
調(diào)試器
背景
圖片保存
多媒體
文檔樹(shù)
列表操作
Sublime 編輯器
盒模型
常見(jiàn)布局樣例
類(lèi)型識(shí)別
變形
數(shù)據(jù)存儲(chǔ)
選擇器
頁(yè)面架構(gòu)
開(kāi)發(fā)及調(diào)試工具
頁(yè)面模塊化
節(jié)點(diǎn)操作
測(cè)量及取色
瀏覽器兼容
HTML 簡(jiǎn)介
內(nèi)置對(duì)象
實(shí)體字符
產(chǎn)品前端架構(gòu)
協(xié)作流程
切圖
工具, 面板, 視圖
正則表達(dá)式
動(dòng)畫(huà)
語(yǔ)句
面向?qū)ο?/span>
HTML 語(yǔ)法
HTML 標(biāo)簽
技術(shù)選擇
樣式操作
圖片優(yōu)化與合并
語(yǔ)法
DOM 編程藝術(shù)
Canvas
接口設(shè)計(jì)
頁(yè)面優(yōu)化
文本

正則表達(dá)式

正則表達(dá)式

正則表達(dá)式為標(biāo)書(shū)字符串規(guī)則的表達(dá)式。下面為兩個(gè)例子為在 JavaScript 中的使用,

  • /pattern/attrs
  • new RegExp(pattern, attrs)

錨點(diǎn)

錨點(diǎn)用于匹配一個(gè)位置,下列為常用的錨點(diǎn)

  • ^ 起始的位置 /^http/
  • $ 結(jié)尾的位置 /\.jpg$/
  • \b 單詞邊界

字符類(lèi)

字符類(lèi)用于匹配一類(lèi)字符中的一個(gè),下面為幾個(gè)常用的例子,

  • [abc] 可用于匹配 a b 還有 c
  • [0-9] 可用于匹配一個(gè)數(shù)字
  • [^0-9] 可用于匹配一個(gè)數(shù)字
  • [a-z] 可用于匹配一個(gè)字母
  • . 任意字符但換行符除外

元字符

元字符為具有特殊意義的字符。常見(jiàn)的有,

  • ^, $, \b
  • \d 用于匹配數(shù)字 [0-9]
  • \D 用于匹配 [^\d]
  • \s 用于匹配空白符
  • \S 用于匹配非空白符 [^\s]
  • \w 用于匹配任意單詞字符(例如程序中的變量字符) [A-Za-z0-9_]
  • \W 用于匹配非單詞字符 [^\W]

量詞

量詞用于表現(xiàn)字符出現(xiàn)的次數(shù)??捎玫倪B詞如下,

  • {m,n} 用于表示出現(xiàn) mn 次之間。
  • * 用于表示出現(xiàn) 0 到無(wú)窮之間也就等同于 {0,}
  • ? 用于表示出現(xiàn) 0 次到 1 次也等同于 {0,1}
  • + 用于表現(xiàn)出現(xiàn) 1 次以及一次以上也等同于 {1,}

轉(zhuǎn)移符

轉(zhuǎn)義符需要在匹配的字符是元字符的時(shí)候使用。使用 \ 來(lái)進(jìn)行轉(zhuǎn)移即可。

多選分支

多選分支用于表示的概念。/thi(c|n)k/ 其又等同于 /thi[cn]k/。其還可以用于匹配文件擴(kuò)展名 /\.(png|jpg|jpeg|gif)$/ 。

常用方法

測(cè)試:regxObj.test(str)

其用于測(cè)試正則表達(dá)式與指定字符串是否匹配。

/123/.test(123); // true
/123/.test(111); // false
/123/.test('x123'); // true

捕獲

其用于保存所匹配到的字符串為后續(xù)開(kāi)發(fā)所用。() 可用于捕獲,正則表達(dá)式再運(yùn)行時(shí)會(huì)將其保存下來(lái),(?:) 則不予保存。

// str.match(regexp)
var url = 'http://www.google.com/query?test=li-xinyang#cool';
var reg = /(https?:)\/\/([^\/]+)(\/[^\?]*)?(\?[^#]*)?(#.*)?/;

var arr = url.match(reg);
var protocol = arr[1];
var host = arr[2];
var pathname = arr[3];
var search = arr[4];
var hash = arr[5];

搜索與替換

regexpObj.exec(str) 可以提供更強(qiáng)大的檢索,它可以提供更詳盡的結(jié)果 index 也可以提供過(guò)程狀態(tài) lastIndex。

str.replace(regex/substr, replacement) 可以使用正則表達(dá)式來(lái)對(duì)字符串進(jìn)行替換。

上一篇:切圖下一篇:類(lèi)型系統(tǒng)