摘要:如果匹配成功,則返回正則表達式在字符串中首次匹配項的索引。該字符串中可以內插一些特殊的變量名。使用一個帶有相應標志的正則表達式對象來代替此參數。一個整數,限定返回的分割片段數量。
一、RegExp對象
構造正則表達式:
javascript//方式1: var re = /w+/; //最常用的方式 //方式2: var re = new RegExp("w+"); //注意轉義1. reg.test(str)
描述:test() 方法執行一個檢索,用來查看正則表達式與指定的字符串是否匹配。返回 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() 方法為指定的一段字符串執行搜索匹配操作。它的返回值是一個數組或者 null。
javascriptvar re = /d(b+)(d)/ig; var result = re.exec("cdbBdbsbz"); console.log(result); //["dbBd", "bB", "d", index: 1, input: "cdbBdbsbz"]
返回的數據:
對象 | 屬性/索引 | 描述 | 例子 |
result | [0] | 正則表達式最后的匹配項 | dbBd |
[1], ...[ n ] | 子表達式匹配項 | [1] = bB [2] = d |
|
index | 第一個匹配項在原字符串中的索引 | 1 | |
input | 方法輸入的參數字符串 | cdbBdbsbz | |
re | lastIndex | 下一次執行匹配開始索引的位置. | 5 |
ignoreCase | 指"i" 標識是否啟用 | true | |
global | 指"g" 標識是否啟用 | true | |
multiline | 指"m" 標識是否啟用 | false | |
source | 正則表達式的文本表示 | d(b+)(d) |
reference:MDN參考
二、String對象 1. str.search(reg) vs reg.test(str)*描述:search() 方法執行一個查找,看該字符串對象與一個正則表達式是否匹配。參數reg為一個正則表達式對象,否則隱式調用new RegExp(reg)進行轉換。
如果匹配成功,則 search 返回正則表達式在字符串中首次匹配項的索引。否則,返回 -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)描述:當字符串匹配到正則表達式(regular expression)時,match() 方法會提取匹配項。reg參數為一個正則對象,若不是,則隱式地調用new RegExp(reg) 進行轉換。返回數組,不匹配返回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時,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() 方法使用一個替換值(replacement)替換掉一個匹配模式(pattern)在原字符串中某些或所有的匹配項,并返回替換后的字符串。這個替換模式可以是字符串或者正則表達式,替換值可以是一個字符串或者一個函數。
參數
regexp:
一個 RegExp 對象。該正則所匹配的內容會被第二個參數的返回值替換掉。
substr:
一個要被 newSubStr 替換的字符串。
newSubStr:
替換掉第一個參數在原字符串中的匹配部分。該字符串中可以內插一些特殊的變量名。
function:
一個用來創建新子字符串的函數,該函數的返回值將替換掉第一個參數匹配到的結果。該函數的參數描述請參考 Specifying a function as a parameter 小節。.
flags:
注意:flags 參數在 v8 內核(Chrome and NodeJs)中不起作用。一個字符串,用來指定 regular expression flags 或其組合。在 String.replace method 中使用 flags 參數不是符合標準。使用一個帶有相應標志(flags)的正則表達式(RegExp)對象來代替此參數。該參數的值應該是下面的一個或多個字符,具體作用見下:
g 全局替換
i 忽略大小寫
m 多行模式
返回:
一個新字符串,其中匹配模式的某些或所有匹配項被替換為替換值。該方法并不改變調用它的字符串本身,而只是返回替換后的字符串.
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)描述:用來分割字符串的字符(串)。separator 可以是一個字符串或正則表達式。 如果忽略 separator,則返回的數組包含一個由原字符串組成的元素。如果 separator 是一個空字符串,則 str 將會轉換成一個由原字符串中字符組成的數組。 limit一個整數,限定返回的分割片段數量。split 方法仍然分割每一個匹配的 separator,但是返回的數組只會截取最多 limit 個元素。
*注: 如果 separator 是一個正則表達式,且包含捕獲括號(capturing parentheses),則每次匹配到 separator 時,捕獲括號匹配的結果將會插入到返回的數組中。然而,不是所有瀏覽器都支持該特性。
javascriptvar myString = "Hello 1 word. Sentence number 2."; var splits = myString.split(/(d)/); console.log(splits); //["Hello ", "1", " word. Sentence number ", "2", "."]
reference: MDN參考
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87668.html
摘要:選擇分組和引用正則表達式的語法還包括指定選擇項子表達式分組和引用前一子表達式的特殊字符。帶圓括號的表達式的另一個用途是允許在同一正則表達式的后部引用前面的子表達式。 正則表達式(regular expression)是一個描述字符模式的對象。JavaScript的 RegExp類 表示正則表達式,String和RegExp都定義了方法,后者使用正則表達式進 行強大的模式匹配和文本檢索與...
摘要:正則表達式的意義中的正則表達式使用表示,可以使用構造函數來創建對象,不過對象更多的是通過一種特殊的直接量語法來創建。用構造函數也可以定義一個與之等價的正則表達式,代碼如下正則表達式的模式規則是由一個字符序列組成的。 正則表達式的模式匹配 正則表達式(regular expression)是一個描述字符模式的對象。javascript的RegExp對象表示正則表達式,String和Reg...
Javascript的正則表達式是前端中比較重要的部分,正則表達式主要用于字符串處理,表單驗證等場合,實用高效,文章主要對JavaScript中的正則的學習與總結 正則表達式的定義 正則表達式:是一個描述字符模式的對象,JavaScrip中正則表達式用RegExp對象表示,可以使用RegExp構造函數來創建正則對象 正則表達式的創建 1.字面量創建 var reg = /[a-z]/; 2.構...
摘要:正則表達式的字符串表示,按照字面量形式而非傳入構造函數中的字符串模式返回。其中,表示匹配項在字符串中的位置,而表示應用正則表達式的字符串。下面列出了正則表達式所不支持的特性。關卡按要求完成下列常用的正則表達式。 由于本課程的核心是 JavaScript,所以本文著重講解了「正則表達式」在 JavaScript 中的用法,并未深入「正則表達式」的具體細節。如果您尚不了解「正則表達式」,強...
閱讀 1129·2021-11-08 13:13
閱讀 1712·2019-08-30 15:55
閱讀 2767·2019-08-29 11:26
閱讀 2434·2019-08-26 13:56
閱讀 2556·2019-08-26 12:15
閱讀 2133·2019-08-26 11:41
閱讀 1400·2019-08-26 11:00
閱讀 1535·2019-08-23 18:30