成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript中的正則

YancyYe / 1780人閱讀

摘要:如果匹配成功,則返回正則表達(dá)式在字符串中首次匹配項(xiàng)的索引。該字符串中可以內(nèi)插一些特殊的變量名。使用一個(gè)帶有相應(yīng)標(biāo)志的正則表達(dá)式對(duì)象來(lái)代替此參數(shù)。一個(gè)整數(shù),限定返回的分割片段數(shù)量。

一、RegExp對(duì)象

構(gòu)造正則表達(dá)式:

javascript//方式1:
var re = /w+/;   //最常用的方式

//方式2:
var re = new RegExp("w+");  //注意轉(zhuǎn)義
1. reg.test(str)

描述:test() 方法執(zhí)行一個(gè)檢索,用來(lái)查看正則表達(dá)式與指定的字符串是否匹配。返回 true 或 false。

javascriptfunction testinput(re, str){
    var midstring;
    if (re.test(str)) {
        midstring = " contains ";
    } else {
        midstring = " does not contain ";
    }
    console.log(str + midstring + re.source);
}

testinput(/c{2}/, "cainiao"); 
//"cainiao does not contain c{2}"

reference: MDN參考

2. reg.exec(str)方法

exec() 方法為指定的一段字符串執(zhí)行搜索匹配操作。它的返回值是一個(gè)數(shù)組或者 null。

javascriptvar re = /d(b+)(d)/ig;
var result = re.exec("cdbBdbsbz");
console.log(result); 
//["dbBd", "bB", "d", index: 1, input: "cdbBdbsbz"] 

返回的數(shù)據(jù):

對(duì)象 屬性/索引 描述 例子
result [0] 正則表達(dá)式最后的匹配項(xiàng) dbBd
[1], ...[ n ] 子表達(dá)式匹配項(xiàng) [1] = bB
[2] = d
index 第一個(gè)匹配項(xiàng)在原字符串中的索引 1
input 方法輸入的參數(shù)字符串 cdbBdbsbz
re lastIndex 下一次執(zhí)行匹配開(kāi)始索引的位置. 5
ignoreCase 指"i" 標(biāo)識(shí)是否啟用 true
global 指"g" 標(biāo)識(shí)是否啟用 true
multiline 指"m" 標(biāo)識(shí)是否啟用 false
source 正則表達(dá)式的文本表示 d(b+)(d)

reference:MDN參考

二、String對(duì)象 1. str.search(reg) vs reg.test(str)

*描述:search() 方法執(zhí)行一個(gè)查找,看該字符串對(duì)象與一個(gè)正則表達(dá)式是否匹配。參數(shù)reg為一個(gè)正則表達(dá)式對(duì)象,否則隱式調(diào)用new RegExp(reg)進(jìn)行轉(zhuǎn)換。
如果匹配成功,則 search 返回正則表達(dá)式在字符串中首次匹配項(xiàng)的索引。否則,返回 -1。

javascriptfunction testinput(re, str){
  var midstring;
  if (str.search(re) != -1){
    midstring = " contains ";
  } else {
    midstring = " does not contain ";
  }
  console.log (str + midstring + re);
}
testinput(/db*/, "sdbbdee"); //sdbbdee contains /db*/ 

*reference: MDN參考

2. str.match(reg) vs reg.exec(str)

描述:當(dāng)字符串匹配到正則表達(dá)式(regular expression)時(shí),match() 方法會(huì)提取匹配項(xiàng)。reg參數(shù)為一個(gè)正則對(duì)象,若不是,則隱式地調(diào)用new RegExp(reg) 進(jìn)行轉(zhuǎn)換。返回?cái)?shù)組,不匹配返回null。

javascriptvar str = "For more information, see Chapter 3.4.5.1";
var re = /(chapter d+(.d)*)/i;  //不是用g的情況
var found = str.match(re);
console.log(found);
//["Chapter 3.4.5.1", "Chapter 3.4.5.1", ".1", index: 26, input: "For more information, see Chapter 3.4.5.1"] 
javascriptvar str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var regexp = /[A-E]/gi;  //使用g時(shí),found不存在index和input屬性
var found = str.match(regexp);
//["A", "B", "C", "D", "E", "a", "b", "c", "d", "e"]

*reference:MDN參考

3. str.replace(regexp|substr, newSubStr|function[, flags])

描述:replace() 方法使用一個(gè)替換值(replacement)替換掉一個(gè)匹配模式(pattern)在原字符串中某些或所有的匹配項(xiàng),并返回替換后的字符串。這個(gè)替換模式可以是字符串或者正則表達(dá)式,替換值可以是一個(gè)字符串或者一個(gè)函數(shù)。

參數(shù)
regexp:
一個(gè) RegExp 對(duì)象。該正則所匹配的內(nèi)容會(huì)被第二個(gè)參數(shù)的返回值替換掉。
substr:
一個(gè)要被 newSubStr 替換的字符串。
newSubStr:
替換掉第一個(gè)參數(shù)在原字符串中的匹配部分。該字符串中可以內(nèi)插一些特殊的變量名。
function:
一個(gè)用來(lái)創(chuàng)建新子字符串的函數(shù),該函數(shù)的返回值將替換掉第一個(gè)參數(shù)匹配到的結(jié)果。該函數(shù)的參數(shù)描述請(qǐng)參考 Specifying a function as a parameter 小節(jié)。.
flags:
注意:flags 參數(shù)在 v8 內(nèi)核(Chrome and NodeJs)中不起作用。一個(gè)字符串,用來(lái)指定 regular expression flags 或其組合。在 String.replace method 中使用 flags 參數(shù)不是符合標(biāo)準(zhǔn)。使用一個(gè)帶有相應(yīng)標(biāo)志(flags)的正則表達(dá)式(RegExp)對(duì)象來(lái)代替此參數(shù)。該參數(shù)的值應(yīng)該是下面的一個(gè)或多個(gè)字符,具體作用見(jiàn)下:
g 全局替換
i 忽略大小寫(xiě)
m 多行模式

返回:
一個(gè)新字符串,其中匹配模式的某些或所有匹配項(xiàng)被替換為替換值。該方法并不改變調(diào)用它的字符串本身,而只是返回替換后的字符串.

javascriptvar re = /apples/gi;
var str = "Apples are round, and apples are juicy.";
var newstr = str.replace(re, "oranges");
print(newstr);
//"oranges are round, and oranges are juicy."

等同于:

javascriptvar str = "Apples are round, and apples are juicy.";
var newstr = str.replace("apples", "oranges", "gi");
print(newstr);
//"oranges are round, and oranges are juicy."
javascriptvar re = /(w+)s(w+)/;
var str = "John Smith";
var newstr = str.replace(re, "$2, $1");
print(newstr); //"Smith John"

reference: MDN參考

4. str.split(seperator, limit)

描述:用來(lái)分割字符串的字符(串)。separator 可以是一個(gè)字符串或正則表達(dá)式。 如果忽略 separator,則返回的數(shù)組包含一個(gè)由原字符串組成的元素。如果 separator 是一個(gè)空字符串,則 str 將會(huì)轉(zhuǎn)換成一個(gè)由原字符串中字符組成的數(shù)組。 limit一個(gè)整數(shù),限定返回的分割片段數(shù)量。split 方法仍然分割每一個(gè)匹配的 separator,但是返回的數(shù)組只會(huì)截取最多 limit 個(gè)元素。

*注: 如果 separator 是一個(gè)正則表達(dá)式,且包含捕獲括號(hào)(capturing parentheses),則每次匹配到 separator 時(shí),捕獲括號(hào)匹配的結(jié)果將會(huì)插入到返回的數(shù)組中。然而,不是所有瀏覽器都支持該特性。 

javascriptvar myString = "Hello 1 word. Sentence number 2.";
var splits = myString.split(/(d)/);
console.log(splits);
//["Hello ", "1", " word. Sentence number ", "2", "."]

reference: MDN參考

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/87668.html

相關(guān)文章

  • JavaScript正則表達(dá)式的匹配模式

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

    wqj97 評(píng)論0 收藏0
  • JavaScript 中的正則表達(dá)式

    摘要:正則表達(dá)式的意義中的正則表達(dá)式使用表示,可以使用構(gòu)造函數(shù)來(lái)創(chuàng)建對(duì)象,不過(guò)對(duì)象更多的是通過(guò)一種特殊的直接量語(yǔ)法來(lái)創(chuàng)建。用構(gòu)造函數(shù)也可以定義一個(gè)與之等價(jià)的正則表達(dá)式,代碼如下正則表達(dá)式的模式規(guī)則是由一個(gè)字符序列組成的。 正則表達(dá)式的模式匹配 正則表達(dá)式(regular expression)是一個(gè)描述字符模式的對(duì)象。javascript的RegExp對(duì)象表示正則表達(dá)式,String和Reg...

    _Dreams 評(píng)論0 收藏0
  • JavaScript中的正則表達(dá)式

    Javascript的正則表達(dá)式是前端中比較重要的部分,正則表達(dá)式主要用于字符串處理,表單驗(yàn)證等場(chǎng)合,實(shí)用高效,文章主要對(duì)JavaScript中的正則的學(xué)習(xí)與總結(jié) 正則表達(dá)式的定義 正則表達(dá)式:是一個(gè)描述字符模式的對(duì)象,JavaScrip中正則表達(dá)式用RegExp對(duì)象表示,可以使用RegExp構(gòu)造函數(shù)來(lái)創(chuàng)建正則對(duì)象 正則表達(dá)式的創(chuàng)建 1.字面量創(chuàng)建 var reg = /[a-z]/; 2.構(gòu)...

    _Zhao 評(píng)論0 收藏0
  • JavaScript 闖關(guān)記》之正則表達(dá)式

    摘要:正則表達(dá)式的字符串表示,按照字面量形式而非傳入構(gòu)造函數(shù)中的字符串模式返回。其中,表示匹配項(xiàng)在字符串中的位置,而表示應(yīng)用正則表達(dá)式的字符串。下面列出了正則表達(dá)式所不支持的特性。關(guān)卡按要求完成下列常用的正則表達(dá)式。 由于本課程的核心是 JavaScript,所以本文著重講解了「正則表達(dá)式」在 JavaScript 中的用法,并未深入「正則表達(dá)式」的具體細(xì)節(jié)。如果您尚不了解「正則表達(dá)式」,強(qiáng)...

    TalkingData 評(píng)論0 收藏0
  • JS中的正則表達(dá)式

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

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

    摘要:最全正則表達(dá)式總結(jié)驗(yàn)證號(hào)手機(jī)號(hào)中文郵編身份證地址等是正則表達(dá)式的縮寫(xiě),作用是對(duì)字符串執(zhí)行模式匹配。學(xué)習(xí)目標(biāo)了解正則表達(dá)式語(yǔ)法在中使用正則表達(dá)式在中使 JS高級(jí)技巧 本篇是看的《JS高級(jí)程序設(shè)計(jì)》第23章《高級(jí)技巧》做的讀書(shū)分享。本篇按照書(shū)里的思路根據(jù)自己的理解和經(jīng)驗(yàn),進(jìn)行擴(kuò)展延伸,同時(shí)指出書(shū)里的一些問(wèn)題。將會(huì)討論安全的類型檢測(cè)、惰性載入函數(shù)、凍結(jié)對(duì)象、定時(shí)器等話題。1. 安全的類型檢測(cè)...

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<