摘要:引用文字什么是正則表達式正則表達式是一個描述字符模式的對象。正則表達式元字符是包含特殊含義的字符,可以控制匹配模式的方式。
引用文字什么是正則表達式
正則表達式是一個描述字符模式的對象。主要用來驗證客戶端的輸入數據,用戶填寫完表單信息提交后,就會傳遞給后臺服務器,服務器會通過PHP等后臺腳本進行處理,因為客戶端驗證,節約了大量的服務器資源,并提供了良好的用戶體驗。
創建正則表達式創建正則表達式有兩種方法:
使用RegExp構建函數接收兩個參數:一個是要匹配的字符串,一個是模式修飾符(可選)
var pattern = new RegExp("box");
字面量方式創建,直接使用兩個斜杠。在第二個斜杠后面加上模式修飾符(可選)
var pattern = /box/ flags; //兩個斜杠和box之間不能有空格
模式修飾符的可選參數:
參數 | 含義 |
---|---|
g | 全局模式(global) |
i | 不區分大小寫(case-insensitive) |
m | 多行模式(multiline) |
exct() 接收一個參數,該參數和模式匹配,把模式作為數組返回;未匹配到返回null
test() 接收一個參數,該參數和模式匹配,返回true,否則返回false
String對象中的正則表達式方法:
方法 | 含義 |
---|---|
match(pattern) | 返回匹配到模式中的字符串或null |
replace(pattern,replacement) | 用replacement替換pattern |
search(pattern) | 返回字符串中pattern開始的位置 |
split(pattern) | 返回用空格拆分的數組 |
例:
var pattern = /box/ig; var str = "This is Box! This is Box!"; alert(str.match(pattern)); //Box Box
開啟全局模式,將所有匹配的字符串組合成數組;
未開啟全局模式,匹配到第一個字符串就返回。
var pattern = /box/ig; var str = "This is Box! This is Box!"; alert(str.replace(pattern,"Tom")); //This is Box! This is Box!
開啟全局模式,將匹配到的字符串全部替換掉;
未開啟全局模式,只替換掉第一個查找到的字符串。
var pattern = /box/i; var str = "This is Box! This is Box!"; alert(str.search(pattern)); //8
查找返回的位置:查到返回對應的位置,未查到返回-1;無需全局模式。
var pattern = / /i; var str = "This is Box! This is Box!"; alert(str.split(pattern));
返回用空格拆分的數組
RegExp對象的靜態屬性:
屬性 | 短名 | 含義 |
---|---|---|
input | $_ | 當前被匹配的字符串 |
lastMatch | $& | 最后一個匹配字符串 |
lastParen | $+ | 最后一對圓括號內的匹配子串 |
leftContext | $` | 最后一次匹配前的字符串 |
multiline | $* | 用于指定是否所有的表達式都用于多行的,返回布爾值 |
rightContext | $" | 最后一次匹配之后的字符串 |
所有的屬性都可以用短名來操作,其中$_可以用點表示法來操作,其他都不可以。
正則表達式元字符是包含特殊含義的字符,可以控制匹配模式的方式。反斜杠后的元字符將失去其含義。
獲取控制字符類:單個字符和數字
元字符/元符號 | 匹配情況 |
---|---|
. | 匹配除換行符號外的任意字符 |
[a-zA-Z0-9] | 匹配方括號中任意字符 |
1 | 匹配不是方括號中任意字符 |
d | 匹配任意數字和[0-9]相同 |
D | 匹配非數字和2相同1 |
w | 匹配字母和數字及_ |
W | 匹配非字母和數字及_ |
字符類:空白字符
元字符/元符號 | 匹配情況 |
---|---|
0 | 匹配null字符 |
b | 匹配空格字符 |
f | 匹配進紙字符 |
n | 匹配換行符 |
r | 匹配回車字符 |
t | 匹配制表符 |
s | 匹配空白字符、空格、制表符和換行符 |
S | 匹配非空白字符 |
字符類:替代字符
元字符/元符號 | 匹配情況 | |||
---|---|---|---|---|
this | where | logo | 匹配 this 或 where 或 logo 中任意一個,` | `必須用分組符號包含起來 |
字符類:錨字符
元字符/元符號 | 匹配情況 |
---|---|
^ | 行首匹配 |
$ | 行尾匹配 |
A | 只有匹配字符串開始處 |
b | 匹配單詞邊界,詞在[]內時無效 |
B | 匹配非單詞邊界 |
G | 匹配當前搜索的開始位置 |
Z | 匹配字符串結束處或行尾 |
z | 只匹配字符串結束處 |
字符類:重復字符
元字符/元符號 | 匹配情況 |
---|---|
x? | 匹配0個或1個x |
x* | 匹配0個或1個或多個x |
x+ | 匹配1個或多個x |
(xyz)+ | 匹配至少一個(xyz) |
x{m,n} | 匹配最少m個、最多n個x |
字符類:替代字符
元字符/元符號 | 匹配情況 |
---|---|
(string) | 分組表示一個字符,用圓括號表示 |
1 或$1 | 匹配第一個分組中的內容 |
2 或$2 | 匹配第二個分組中的內容 |
3 或$3 | 匹配第三個分組中的內容 |
貪婪是盡可能多的匹配內容,惰性(非貪婪)這是盡可能少的匹配內容
貪婪是從結尾開始匹配,惰性(非貪婪)是從開頭開始匹配
貪婪 | 惰性 |
---|---|
+ | +? |
? | ?? |
* | *? |
{n} | {n}? |
{n,} | {n,}? |
{n,m} | {n,m}? |
下面例子匹配8和8中的內容,把他替換成QQ
var pattern = /8(.+?)8/g; var str = "This is 8google8, That is 8google8, There is 8google8"; var result = str.replace(pattern,"QQ"); document.write(result); 輸出結果:This is QQ, That is QQ, There is QQ
錯誤匹配:8google, That is 8換成QQ,google不變,8, There is 8替換成QQ,google8不變,就是我們看到的結果。
var pattern = /8(.+?)8/g; var str = "This is 8google, That is 8google8, There is 8google8"; var result = str.replace(pattern,"QQ"); document.write(result); 輸出結果:This is QQgoogleQQgoogle8
錯誤匹配:8google8換成QQ,google不變,8, That is 8替換成QQ,google不變,8, There is 8替換成QQ,google8不變,就是我們看到的結果。
var pattern = /8(.+?)8/g; var str = "This is 8google8google8, That is 8google8, There is 8google8"; var result = str.replace(pattern,">QQ"); document.write(result); 輸出結果:This is QQgoogleQQgoogleQQgoogle8
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94460.html
摘要:正則表達式是用于匹配的字符串使用庫四部分組成定界符原子元字符模式修正符沒匹配上原子要點打印字符鍵盤打出的字符非打印字符回車等打印字符除了字母數字下劃線等,其他最好加轉義匹配回車通用任意一個數字,任意一個非數字,任意一個字,任意一個非字 1.正則表達式是用于匹配的字符串2.使用PCRE庫3.四部分組成:定界符、原子、元字符、模式修正符 $str=aaa1aa2aa333aaaa; $re...
摘要:基本概念正則表達式是用于匹配字符串中字符組合的模式。正則表達式有兩部分組成,一部分是普通字符,一部分是特殊字符。正則表達式的創建有兩種方式對象字面量和對象構造函數。 1:基本概念 正則表達式是用于匹配字符串中字符組合的模式。它也是一個描述字符模式的對象,使用正則表達式可以進行強大的模式匹配和文本檢索與交替功能。 正則表達式有兩部分組成,一部分是普通字符,一部分是特殊字符。普通字符比如說...
摘要:正則表達式使用單個字符串來描述匹配一系列匹配某個句法規則的字符串。接下來,是在手機正則里面已經出現了。序列匹配而則匹配。分組與反向引用分組,又稱為子表達式。把正則表達式拆分成小表達式。 本文轉載自網絡。轉載編輯過程中,可能有遺漏或錯誤,請以原文為準。原文作者:水墨寒湘原文鏈接:https://juejin.im/post/582dfc... 正則表達式對于我來說一直像黑暗魔法一樣的存...
摘要:說來慚愧,做前端快三年對于正則表達式的應用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語法和規則,這次項目中多次用到了需要匹配替換的動作,終于下定決心去研究一下了。 說來慚愧,做前端快三年對于正則表達式的應用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語法和規則,這次項目中多次用到了需要匹配替換的動作,終于下定決心去研究一下了。 實例化正則對...
閱讀 1561·2021-11-24 09:39
閱讀 1042·2021-11-22 15:11
閱讀 2167·2021-11-19 11:35
閱讀 1627·2021-09-13 10:37
閱讀 2453·2021-09-03 10:47
閱讀 2134·2021-08-30 09:47
閱讀 1626·2021-08-20 09:39
閱讀 2901·2019-08-30 14:13