国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

——————【 正則表達式 】——————

fuchenxuan / 1701人閱讀

摘要:正則表達式邊界及前瞻邊界整個字符串開頭結尾單詞的邊界前瞻正向前瞻反向前瞻正則的對象屬性屬性描述對象是否具有標志。正則表達式的源文本。支持正則表達式的對象的方法方法描述檢索與正則表達式相匹配的值。替換與正則表達式匹配的子串。

——————【 正則表達式 】——————

復習字符串操作

indexOf 查找字符 返回位置
charAt  查找位置 返回字符
substring 獲取字符竄
split     分割字符串

正則表達式的概念和寫法

正則 :也叫做規則,讓計算機能夠讀懂人類的規則
正則都是操作字符串的。
正則的寫法:
var re = /a/; //和數組字符串區分開來
var re = newRegExp("a");
【正則默認】 :
1.正則中是區分大小寫的
不區分大小寫在正則后加 表示i (ignore)
如var re = newRegExp("a","i");
2.正則匹配成功就會結束,不會繼續匹配,
如果想全部查找就要加 標識g (global)

量詞:代表出現的次數

量詞        描述
n+            匹配任何包含至少一個 n 的字符串。
n*            匹配任何包含零個或多個 n 的字符串。
n?            匹配任何包含零個或一個 n 的字符串。
n{X}        匹配包含 X 個 n 的序列的字符串。
n{X,Y}          匹配包含 X 至 Y 個 n 的序列的字符串。
n{X,}            匹配包含至少 X 個 n 的序列的字符串。
n$            匹配任何結尾為 n 的字符串。
^n            匹配任何開頭為 n 的字符串。
?=n            匹配任何其后緊接指定字符串 n 的字符串。
?!n            匹配任何其后沒有緊接指定字符串 n 的字符串。
>{n,m}:至少出現n次,最多m次
>{n,} :至少n次
>* :任意次 相當于{0,}
? :零次或一次 相當于{0,1}
+ :一次或任意次相當于 {1,}
{n}: 正好n次
例子:判斷是不是QQ號
//^ : 放在正則的最開始位置,就代表起始的意思,注意 /[^a] / 和

/^[a]/是不一樣的,前者是排除的意思,后者是代表首位。

//$ : 正則的最后位置 , 就代表結束的意思

//首先想QQ號的規則 
1 首位不能是0
2 必須是 5-12位的數字
var aInput = document.getElementsByTagName("input");

var re = /^[1-9]d{4,11}$/;

//123456abc為了防止出現這樣的情況,所以必須限制最后

//首位是0-9,接著是4-11位的數字類型。

aInput[1].onclick = function(){

    if( re.test(aInput[0].value) ){

        alert("是QQ號");
    
    }else{
    
        alert("不是QQ號");

    }
};

例子:去掉前后空格(面試題經常出現)

var str = " hello ";

    alert( "("+trim(str)+")" );//為了看出區別所以加的括號。 (hello)
    
function trim(str){

var re = /^s+|s+$/g; // |代表或者 s代表空格 +至少一個 前面有至少一個空格 或者后面有至少一個空格 且全局匹配

return str.replace(re,""); //把空格替換成空

}

貪婪模式與反貪婪模式

*、+和?限定符都是貪婪的,因為它們會盡可能多的匹配文字,只有在它們的后面加上一個?就可>以實現非貪婪或最小匹配。
var c="qqq icbkb coiwcnk tyu kjanc alnc"

var reg =/w{4,7}/g

    console.log(c.match(reg))// ["icbkb", "coiwcnk", "kjanc", "alnc"]

var reg =/w{4,7}?/g

    console.log(c.match(reg)) ["icbk", "coiw", "kjan", "alnc"]
    

正則表達式邊界及前瞻

邊界

整個字符串開頭( ^ ) 結尾( $ )

單詞的邊界 (b), (B)

前瞻

正向前瞻 reg (? = assert)

反向前瞻 reg (?! = assert)

正則的對象屬性

屬性 描述

global RegExp 對象是否具有標志 g。 ignoreCase RegExp 對象是否具有標志 i。 lastIndex 一個整數,標示開始下一次匹配的字符位置。 multiline RegExp 對象是否具有標志 m。 source 正則表達式的源文本。

正則表達式的使用

RegExp 對象方法

方法 描述
compile    編譯正則表達式。
exec        檢索字符串中指定的值。返回找到的值,并確定其位置。
test        檢索字符串中指定的值。返回 true 或 false。

支持正則表達式的 String 對象的方法

方法 描述
search        檢索與正則表達式相匹配的值。
match        找到一個或多個正則表達式的匹配。
replace        替換與正則表達式匹配的子串。
split        把字符串分割為字符串數組。

test() :在字符串中查找符合正則的內容,若查找到返回true,反之返回false.

用法正則.test(字符串)
例子:判斷是否是數字
var str = "374829348791";
    
var re = /D/; // D代表非數字
    
    if( re.test(str) ){ // 返回true,代表在字符串中找到了非數字。

        alert("不全是數字");
    
        }else{
    
        alert("全是數字");
    }

search() :在字符串搜索符合正則的內容,搜索到就返回出現的位置(從0開始,如果匹配的不只是一個字母,那只會返回第一個字母的位置), 如果搜索失敗就返回 -1

用法:字符串.search(正則)
在字符串中查找復合正則的內容。忽略大小寫:i——ignore(正則中默認是區分大小寫的 如果不區分大小寫的話,在正則的最后加標識 i )

例子:在字符串中找字母b,且不區分大小寫

var str = "abcdef";
var re = /B/i;
//var re = new RegExp("B","i"); 也可以這樣寫
alert( str.search(re) ); // 1

match() 在字符串中搜索復合規則的內容,搜索成功就返回內容,格式為數組,失敗就返回null。

用法: 字符串.match(正則)
量詞:+ 至少出現一次 匹配不確定的次數(匹配就是搜索查找的意思)
全局匹配:g——global(正則中默認,只要搜索到復合規則的內容就會結束搜索 )

例子:找出指定格式的所有數字,如下找到 123,54,33,879

var str = "haj123sdk54hask33dkhalsd879";

var re = /d+/g; // 每次匹配至少一個數字 且全局匹配

如果不是全局匹配,當找到數字123,它就會停止了。

就只會彈出123.加上全局匹配,就會從開始到結束一直去搜索符合規則的。

如果沒有加號,匹配的結果就是1,2,3,5,4,3,3,879并不是我們想要的,有了加號,每次匹配的數字就是至少一個了。

alert( str.match(re) ); // [123,54,33,879]

replace() :查找符合正則的字符串,就替換成對應的字符串。返回替換后的內容。

用法: 字符串.replace(正則,新的字符串/回調函數)(在回調函數中,第一個參數指的是每次匹配成功的字符) | : 或的意思 。

例子:敏感詞過濾,比如 >我愛北京天安門,天安門上太陽升。------我愛*,上太陽升。即北京和天安門變成*號,
一開始我們可能會想到這樣的方法:

var str = "我愛北京天安門,天安門上太陽升。";

var re = /北京|天安門/g;     // 找到北京 或者天安門 全局匹配

var str2 = str.replace(re,"*"); 

alert(str2)                 //我愛**,*上太陽升 

//這種只是把找到的變成了一個*,并不能幾個字就對應幾個*。

要想實現幾個字對應幾個*,我們可以用回調函數實現:

var str = "我愛北京天安門,天安門上太陽升。";

var re = /北京|天安門/g;        // 找到北京 或者天安門 全局匹配

var str2 = str.replace(re,function(str){

alert(str);         //用來測試:函數的第一個參數代表每次搜索到的符合正則的字符,所以第一次str指的是北京 第二次str是天安門 第三次str是天安門

var result = "";

for(var i=0;i

():,小括號,叫做分組符。就相當于數學里面的括號。如下:

var str = "2013-6-7";

var re1 = /d-+/g;           // 全局匹配數字,橫杠,橫杠數量至少為1,匹配結果為: 3- 6-

var re1 = /(d-)+/g;        // 全局匹配數字,橫杠,數字和橫杠整體數量至少為1 3-6-

var re2 = /(d+)(-)/g;      // 全局匹配至少一個數字,匹配一個橫杠 匹配結果:2013- 6-

[] : 表示某個集合中的任意一個,比如 [abc] 整體代表一個字符 匹配 a b c 中的任意一個,也可以是范圍,[0-9] 范圍必須從小到大 。

1 整體代表一個字符 :^寫在[]里面的話,就代表排除的意思

例子:匹配HTML標簽 比如

hahahah
找出標簽

var re = /<2+>/g; //匹配左括號

中間至少一個非右括號的內容(因為標簽里面還有屬性等一些東西),然后匹配右括號

var re = /<[wW]+>/g; //匹配左括號 中間至少一個字符或者非字符的內容,然后匹配右括號//

其實就是找到左括號,然后中間可以有至少一個內容,一直到找到右括號就代表是一個標簽。

概念理解

正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這>>些特定字符>的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一>>種過濾邏輯。
給定一個正則表達式和另一個字符串,我們可以達到如下的目的:

給定的字符串是否符合正則表達式的過濾邏輯(稱作“匹配”);

可以通過正則表達式,從字符串中獲取我們想要的特定部分。

正則表達式的特點是:

靈活性、邏輯性和功能性非常強;

可以迅速地用極簡單的方式達到字符串的復雜控制。

a ?

> ?

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84927.html

相關文章

  • 正則達式

    摘要:本文內容共正則表達式火拼系列正則表達式回溯法原理學習正則表達式,是需要懂點兒匹配原理的。正則表達式迷你書問世了讓幫你生成和解析參數字符串最全正則表達式總結驗證號手機號中文郵編身份證地址等是正則表達式的縮寫,作用是對字符串執行模式匹配。 JS 的正則表達式 正則表達式 一種幾乎可以在所有的程序設計語言里和所有的計算機平臺上使用的文字處理工具。它可以用來查找特定的信息(搜索),也可以用來查...

    bang590 評論0 收藏0
  • JS中的正則達式

    摘要:構造函數可以有兩個字符串參數,第一個參數包含正則表達式的主體部分。只讀的布爾值,說明這個正則表達式是否帶有修飾符。中正則的擴展構造函數在中,只能接受字符串作為參數,允許其直接接受正則表達式作為參數。 上文傳送門:初探正則表達式 正則表達式是一個描述字符模式的對象,JavaScript 的 RegExp 類表示正則表達式,String 和 RegExp 都定義了方法,后者使用正則表達式進...

    Soarkey 評論0 收藏0
  • JavaScript正則達式總結

    摘要:正則表達式一直是里比較難以掌握的點。在中創建正則的兩種方式使用字面量這就是正則表達式的字面量語法,表示正則表達式的模式,為正則表達式的標志。字面量形式的正則表達式一般使用較多,也推薦大家盡可能使用這種形式,簡潔易讀,符合正常的使用習慣。 正則表達式一直是js里比較難以掌握的點。 看不懂,學不會,記不住。 每次需要用到正則的時候,都需要再去查找資料。 今天花時間把正則的知識點總結下,希望...

    big_cat 評論0 收藏0
  • 正則與JS中的正則

    摘要:注意本文將正則與中的正則分開討論。正則零寬斷言更多參考各種語言對于正則不同支持參考單行模式與多行模式通過設置正則表達式后的修飾符可開啟對應的匹配模式單行模式和多行模式。 最近這段時間幫同學處理一些文檔, 涉及到一些結構化文檔的工作大部分都得使用正則表達式, 之前對于正則的認識大多來源于語言書上那幾頁的介紹, 自己也沒有用過幾次。這里將我之前感到模糊的概念作個整理。因為對JS了解多點,所...

    firim 評論0 收藏0
  • JavaScript正則達式的匹配模式

    摘要:選擇分組和引用正則表達式的語法還包括指定選擇項子表達式分組和引用前一子表達式的特殊字符。帶圓括號的表達式的另一個用途是允許在同一正則表達式的后部引用前面的子表達式。 正則表達式(regular expression)是一個描述字符模式的對象。JavaScript的 RegExp類 表示正則表達式,String和RegExp都定義了方法,后者使用正則表達式進 行強大的模式匹配和文本檢索與...

    wqj97 評論0 收藏0
  • 正則達式

    摘要:最全正則表達式總結驗證號手機號中文郵編身份證地址等是正則表達式的縮寫,作用是對字符串執行模式匹配。學習目標了解正則表達式語法在中使用正則表達式在中使 JS高級技巧 本篇是看的《JS高級程序設計》第23章《高級技巧》做的讀書分享。本篇按照書里的思路根據自己的理解和經驗,進行擴展延伸,同時指出書里的一些問題。將會討論安全的類型檢測、惰性載入函數、凍結對象、定時器等話題。1. 安全的類型檢測...

    yibinnn 評論0 收藏0

發表評論

0條評論

fuchenxuan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<