成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

正則表達(dá)式基本概念

shiguibiao / 2331人閱讀

摘要:引用文字什么是正則表達(dá)式正則表達(dá)式是一個(gè)描述字符模式的對(duì)象。正則表達(dá)式元字符是包含特殊含義的字符,可以控制匹配模式的方式。

引用文字
什么是正則表達(dá)式

正則表達(dá)式是一個(gè)描述字符模式的對(duì)象。主要用來(lái)驗(yàn)證客戶(hù)端的輸入數(shù)據(jù),用戶(hù)填寫(xiě)完表單信息提交后,就會(huì)傳遞給后臺(tái)服務(wù)器,服務(wù)器會(huì)通過(guò)PHP等后臺(tái)腳本進(jìn)行處理,因?yàn)榭蛻?hù)端驗(yàn)證,節(jié)約了大量的服務(wù)器資源,并提供了良好的用戶(hù)體驗(yàn)。

創(chuàng)建正則表達(dá)式

創(chuàng)建正則表達(dá)式有兩種方法:

使用RegExp構(gòu)建函數(shù)接收兩個(gè)參數(shù):一個(gè)是要匹配的字符串,一個(gè)是模式修飾符(可選)
var pattern = new RegExp("box");

字面量方式創(chuàng)建,直接使用兩個(gè)斜杠。在第二個(gè)斜杠后面加上模式修飾符(可選)
var pattern = /box/ flags; //兩個(gè)斜杠和box之間不能有空格

模式修飾符的可選參數(shù):

參數(shù) 含義
g 全局模式(global)
i 不區(qū)分大小寫(xiě)(case-insensitive)
m 多行模式(multiline)
測(cè)試正則表達(dá)式

exct() 接收一個(gè)參數(shù),該參數(shù)和模式匹配,把模式作為數(shù)組返回;未匹配到返回null
test() 接收一個(gè)參數(shù),該參數(shù)和模式匹配,返回true,否則返回false

使用字符串的正則表達(dá)式方法

String對(duì)象中的正則表達(dá)式方法:

方法 含義
match(pattern) 返回匹配到模式中的字符串或null
replace(pattern,replacement) replacement替換pattern
search(pattern) 返回字符串中pattern開(kāi)始的位置
split(pattern) 返回用空格拆分的數(shù)組

例:

var pattern = /box/ig;
var str = "This is Box! This is Box!";
alert(str.match(pattern));        //Box Box

開(kāi)啟全局模式,將所有匹配的字符串組合成數(shù)組;
未開(kāi)啟全局模式,匹配到第一個(gè)字符串就返回。

var pattern = /box/ig;
var str = "This is Box! This is Box!";
alert(str.replace(pattern,"Tom"));    //This is Box! This is Box!

開(kāi)啟全局模式,將匹配到的字符串全部替換掉;
未開(kāi)啟全局模式,只替換掉第一個(gè)查找到的字符串。

var pattern = /box/i;
var str = "This is Box! This is Box!";
alert(str.search(pattern));        //8

查找返回的位置:查到返回對(duì)應(yīng)的位置,未查到返回-1;無(wú)需全局模式。

var pattern = / /i;
var str = "This is Box! This is Box!";
alert(str.split(pattern));

返回用空格拆分的數(shù)組

RegExp對(duì)象的靜態(tài)屬性:

屬性 短名 含義
input $_ 當(dāng)前被匹配的字符串
lastMatch $& 最后一個(gè)匹配字符串
lastParen $+ 最后一對(duì)圓括號(hào)內(nèi)的匹配子串
leftContext $` 最后一次匹配前的字符串
multiline $* 用于指定是否所有的表達(dá)式都用于多行的,返回布爾值
rightContext $" 最后一次匹配之后的字符串

所有的屬性都可以用短名來(lái)操作,其中$_可以用點(diǎn)表示法來(lái)操作,其他都不可以。

正則表達(dá)式元字符是包含特殊含義的字符,可以控制匹配模式的方式。反斜杠后的元字符將失去其含義。

獲取控制

字符類(lèi):?jiǎn)蝹€(gè)字符和數(shù)字

元字符/元符號(hào) 匹配情況
. 匹配除換行符號(hào)外的任意字符
[a-zA-Z0-9] 匹配方括號(hào)中任意字符
1 匹配不是方括號(hào)中任意字符
d 匹配任意數(shù)字和[0-9]相同
D 匹配非數(shù)字和2相同1
w 匹配字母和數(shù)字及_
W 匹配非字母和數(shù)字及_

字符類(lèi):空白字符

元字符/元符號(hào) 匹配情況
0 匹配null字符
b 匹配空格字符
f 匹配進(jìn)紙字符
n 匹配換行符
r 匹配回車(chē)字符
t 匹配制表符
s 匹配空白字符、空格、制表符和換行符
S 匹配非空白字符

字符類(lèi):替代字符

元字符/元符號(hào) 匹配情況
this where logo 匹配 this 或 where 或 logo 中任意一個(gè),` `必須用分組符號(hào)包含起來(lái)

字符類(lèi):錨字符

元字符/元符號(hào) 匹配情況
^ 行首匹配
$ 行尾匹配
A 只有匹配字符串開(kāi)始處
b 匹配單詞邊界,詞在[]內(nèi)時(shí)無(wú)效
B 匹配非單詞邊界
G 匹配當(dāng)前搜索的開(kāi)始位置
Z 匹配字符串結(jié)束處或行尾
z 只匹配字符串結(jié)束處

字符類(lèi):重復(fù)字符

元字符/元符號(hào) 匹配情況
x? 匹配0個(gè)或1個(gè)x
x* 匹配0個(gè)或1個(gè)或多個(gè)x
x+ 匹配1個(gè)或多個(gè)x
(xyz)+ 匹配至少一個(gè)(xyz)
x{m,n} 匹配最少m個(gè)、最多n個(gè)x

字符類(lèi):替代字符

元字符/元符號(hào) 匹配情況
(string) 分組表示一個(gè)字符,用圓括號(hào)表示
1 或$1 匹配第一個(gè)分組中的內(nèi)容
2 或$2 匹配第二個(gè)分組中的內(nèi)容
3 或$3 匹配第三個(gè)分組中的內(nèi)容
貪婪和惰性(非貪婪)

貪婪是盡可能多的匹配內(nèi)容,惰性(非貪婪)這是盡可能少的匹配內(nèi)容
貪婪是從結(jié)尾開(kāi)始匹配,惰性(非貪婪)是從開(kāi)頭開(kāi)始匹配

貪婪 惰性
+ +?
? ??
* *?
{n} {n}?
{n,} {n,}?
{n,m} {n,m}?

下面例子匹配8和8中的內(nèi)容,把他替換成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);        

輸出結(jié)果:This is QQ, That is QQ, There is QQ

錯(cuò)誤匹配:8google, That is 8換成QQ,google不變,8, There is 8替換成QQgoogle8不變,就是我們看到的結(jié)果。

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);        

輸出結(jié)果:This is QQgoogleQQgoogle8

錯(cuò)誤匹配:8google8換成QQ,google不變,8, That is 8替換成QQ,google不變,8, There is 8替換成QQ,google8不變,就是我們看到的結(jié)果。

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);        

輸出結(jié)果:This is QQgoogleQQgoogleQQgoogle8
  • a-zA-Z0-9 ?

  • 0-9 ?

  • 文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

    轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/94460.html

    相關(guān)文章

    • PHP正則達(dá)式基本概念

      摘要:正則表達(dá)式是用于匹配的字符串使用庫(kù)四部分組成定界符原子元字符模式修正符沒(méi)匹配上原子要點(diǎn)打印字符鍵盤(pán)打出的字符非打印字符回車(chē)等打印字符除了字母數(shù)字下劃線(xiàn)等,其他最好加轉(zhuǎn)義匹配回車(chē)通用任意一個(gè)數(shù)字,任意一個(gè)非數(shù)字,任意一個(gè)字,任意一個(gè)非字 1.正則表達(dá)式是用于匹配的字符串2.使用PCRE庫(kù)3.四部分組成:定界符、原子、元字符、模式修正符 $str=aaa1aa2aa333aaaa; $re...

      JellyBool 評(píng)論0 收藏0
    • JavaScript正則達(dá)式

      摘要:基本概念正則表達(dá)式是用于匹配字符串中字符組合的模式。正則表達(dá)式有兩部分組成,一部分是普通字符,一部分是特殊字符。正則表達(dá)式的創(chuàng)建有兩種方式對(duì)象字面量和對(duì)象構(gòu)造函數(shù)。 1:基本概念 正則表達(dá)式是用于匹配字符串中字符組合的模式。它也是一個(gè)描述字符模式的對(duì)象,使用正則表達(dá)式可以進(jìn)行強(qiáng)大的模式匹配和文本檢索與交替功能。 正則表達(dá)式有兩部分組成,一部分是普通字符,一部分是特殊字符。普通字符比如說(shuō)...

      xavier 評(píng)論0 收藏0
    • 60分鐘正則從入門(mén)到深入

      摘要:正則表達(dá)式使用單個(gè)字符串來(lái)描述匹配一系列匹配某個(gè)句法規(guī)則的字符串。接下來(lái),是在手機(jī)正則里面已經(jīng)出現(xiàn)了。序列匹配而則匹配。分組與反向引用分組,又稱(chēng)為子表達(dá)式。把正則表達(dá)式拆分成小表達(dá)式。 本文轉(zhuǎn)載自網(wǎng)絡(luò)。轉(zhuǎn)載編輯過(guò)程中,可能有遺漏或錯(cuò)誤,請(qǐng)以原文為準(zhǔn)。原文作者:水墨寒湘原文鏈接:https://juejin.im/post/582dfc... 正則表達(dá)式對(duì)于我來(lái)說(shuō)一直像黑暗魔法一樣的存...

      _ang 評(píng)論0 收藏0
    • 正則達(dá)式

      摘要:本文內(nèi)容共正則表達(dá)式火拼系列正則表達(dá)式回溯法原理學(xué)習(xí)正則表達(dá)式,是需要懂點(diǎn)兒匹配原理的。正則表達(dá)式迷你書(shū)問(wèn)世了讓幫你生成和解析參數(shù)字符串最全正則表達(dá)式總結(jié)驗(yàn)證號(hào)手機(jī)號(hào)中文郵編身份證地址等是正則表達(dá)式的縮寫(xiě),作用是對(duì)字符串執(zhí)行模式匹配。 JS 的正則表達(dá)式 正則表達(dá)式 一種幾乎可以在所有的程序設(shè)計(jì)語(yǔ)言里和所有的計(jì)算機(jī)平臺(tái)上使用的文字處理工具。它可以用來(lái)查找特定的信息(搜索),也可以用來(lái)查...

      bang590 評(píng)論0 收藏0
    • js正則達(dá)式學(xué)習(xí)筆記

      摘要:說(shuō)來(lái)慚愧,做前端快三年對(duì)于正則表達(dá)式的應(yīng)用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語(yǔ)法和規(guī)則,這次項(xiàng)目中多次用到了需要匹配替換的動(dòng)作,終于下定決心去研究一下了。 說(shuō)來(lái)慚愧,做前端快三年對(duì)于正則表達(dá)式的應(yīng)用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語(yǔ)法和規(guī)則,這次項(xiàng)目中多次用到了需要匹配替換的動(dòng)作,終于下定決心去研究一下了。 實(shí)例化正則對(duì)...

      Towers 評(píng)論0 收藏0

    發(fā)表評(píng)論

    0條評(píng)論

    閱讀需要支付1元查看
    <