摘要:參數說明此處賦值,為了更好的觀察的值,位置運行結果運行結果運行結果第一次匹配第二次匹配第三次匹配第四次匹配第五次匹配第六次匹配運行結果運行結果如果使用了全局匹配則只顯示匹配到的全部字符串。也沒有屬性運行結果運行結果
replace() 參數說明
@param match
The matched substring. (Corresponds to $&.)
@param p1
@param p2
@param p3
The nth parenthesized submatch string,
provided the first argument to replace was a RegExp object.
(Corresponds to $1, $2, etc. above.) For example,
if /(a+)(+)/, was given, p1 is the match for a+, and p2 for +.
@param offset
The offset of the matched substring within the total string being examined. (For example,
if the total string was "abcd",
and the matched substring was "bc",
then this argument will be 1.)
@param string
The total string being examined.
@returns {*|string}
function replacer(match, p1, p2, p3, offset, string) { console.log("match: " + match); console.log("string: " + string); //p1 is nondigits, p2 digits, and p3 non-alphanumerics console.log("p1: " + p1); console.log("p2: " + p2); console.log("p3: " + p3); //此處賦值,為了更好的觀察p1,p3的值,位置 p1 = 1; p3 = 3; return [p1, p2, p3].join(" - "); } newString = "111abc12345#$*%".replace(/([^d]*)(d*)([^w]*)/, replacer); console.log(newString);運行結果:
* match: 111 * string: 111abc12345#$*% * p1: * p2: 111 * p3: * 1 - 111 - 3abc12345#$*%
function replacer2(match, p1, p2, p3, offset, string) { console.log("match: " + match); console.log("string: " + string); // p1 is nondigits, p2 digits, and p3 non-alphanumerics console.log("p1: " + p1); console.log("p2: " + p2); console.log("p3: " + p3); return [p1, p2, p3].join(" - "); } newString2 = "abc12345xxx#$*%".replace(/([^d]*)(d*)([^w]*)/, replacer2); console.log(newString2);運行結果:
* match: abc12345 * string: abc12345xxx#$*% * p1: abc * p2: 12345 * p3: * abc - 12345 - xxx#$*%
function replacer3(match, p1, p2, p3, offset, string) { console.log("match: " + match); console.log("string: " + string); // p1 is nondigits, p2 digits, and p3 non-alphanumerics console.log("p1: " + p1); console.log("p2: " + p2); console.log("p3: " + p3); return [p1, p2, p3].join(" - "); } newString3 = "1111abc12345xxx#$*%2392039abc12345xxx#$*%".replace(/([^d]*)(d*)([^w]*)/g, replacer3); console.log(newString3);運行結果:
* 第一次匹配 * match: 1111 * string: 1111abc12345xxx#$*%2392039abc12345xxx#$*% * p1: * p2: 1111 * p3: * 第二次匹配 * match: abc12345 * string: 1111abc12345xxx#$*%2392039abc12345xxx#$*% * p1: abc * p2: 12345 * p3: * 第三次匹配 * match: xxx#$*%2392039 * string: 1111abc12345xxx#$*%2392039abc12345xxx#$*% * p1: xxx#$*% * p2: 2392039 * p3: * 第四次匹配 * match: abc12345 * string: 1111abc12345xxx#$*%2392039abc12345xxx#$*% * p1: abc * p2: 12345 * p3: * 第五次匹配 * match: xxx#$*% * string: 1111abc12345xxx#$*%2392039abc12345xxx#$*% * p1: xxx#$*% * p2: * p3: * 第六次匹配 * match: * string: 1111abc12345xxx#$*%2392039abc12345xxx#$*% * p1: * p2: * p3: * - 1111 - abc - 12345 - xxx#$*% - 2392039 - abc - 12345 - xxx#$*% - - - -match()
function match1() { var str = "For more information, see Chapter 3.4.5.1", re = /(chapter d+(.d)*)/i, found = str.match(re); console.dir(found); } match1();運行結果:
* Array[3] * 0: "Chapter 3.4.5.1" * 1: "Chapter 3.4.5.1" * 2: ".1" * index: 26 * input: "For more information, see Chapter 3.4.5.1" * length: 3 * * [input]: * which contains the original string that was parsed * [0]: * the first match * [1]: * the first value remembered from (Chapter d+(.d)*). * [2]: * ".1" is the last value remembered from (.d). * --------------------------------------------------- */
function match2() { var str = "For more information, see Chapter 3.4.5.1", re = /(chapter d+(.d)*)/gi, found = str.match(re); console.dir(found); } match2();運行結果:
* Array[1] * 0: "Chapter 3.4.5.1" * length: 1 * * 如果使用了全局匹配g, 則只顯示匹配到的全部字符串。 * 也沒有input屬性
function match3() { var str = "qbylucky@gmail.com", re = /(.*)@(.*).(.*)/, found = str.match(re); console.dir(found); } match3();運行結果:
* Array[4] * 0: "qbylucky@gmail.com" * 1: "qbylucky" * 2: "gmail" * 3: "com" * index: 0 * input: "qbylucky@gmail.com" * length: 4
function match4() { var str = "qbylucky@gmail.com", re = /(.*)@(.*).(.*)/g, found = str.match(re); console.dir(found); } match4();運行結果:
* Array[1] * 0: "qbylucky@gmail.com" * length: 1
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78085.html
摘要:本文接上篇,基礎部分相對薄弱的同學請移步正則表達式學習筆記一理論基礎。正則表達式標志符全局匹配,即找到所有匹配的。方法返回結果的格式不一致問題這個問題上文正則表達式學習筆記一理論基礎也有體現,這里再單獨拿來說一說,以加深記憶。 showImg(https://segmentfault.com/img/remote/1460000014261596?w=600&h=338); 本文接上篇...
摘要:拿舉例子只想說明你總會在一些陰暗的角落遇到正則表達式,為了到時候不至于一頭霧水,我們最好簡單的了解一下正則表達式的使用。 為什么要學正則表達式 很多人對正則表達式的認知只是在進行表單驗證的時候在網上搜一段正則表達式進行copy,實際工作上好像很難遇到大段的正則表達式 我第一次看到大量的正則使用是在jQuery源碼中,當時看的頭疼只好草草的看下大概思路不了了之,但是到今天我依然不認為這種...
摘要:不過讓流行起來的原因應該是是目前所有主流瀏覽器上唯一支持的腳本語言。經過測試,數字字符串布爾日期可以直接賦值,修改不會產生影響。再考慮對象類型為或者的情況。對于結果聲明其類型。判斷對象的類型是還是,結果類型更改。 轉載自我的個人博客 歡迎大家批評指正 1. 第一個頁面交互 這里最需要學習的老師的代碼中,每一部分功能都由函數控制,沒有創建一個全部變量。且最后有一個函數來控制執行代碼...
摘要:忍者級別的函數操作對于什么是匿名函數,這里就不做過多介紹了。我們需要知道的是,對于而言,匿名函數是一個很重要且具有邏輯性的特性。通常,匿名函數的使用情況是創建一個供以后使用的函數。 JS 中的遞歸 遞歸, 遞歸基礎, 斐波那契數列, 使用遞歸方式深拷貝, 自定義事件添加 這一次,徹底弄懂 JavaScript 執行機制 本文的目的就是要保證你徹底弄懂javascript的執行機制,如果...
閱讀 1402·2021-10-14 09:43
閱讀 992·2021-09-10 10:51
閱讀 1443·2021-09-01 10:42
閱讀 2189·2019-08-30 15:55
閱讀 586·2019-08-30 15:55
閱讀 2339·2019-08-30 14:21
閱讀 1715·2019-08-30 13:04
閱讀 3467·2019-08-29 13:09