国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript 正則表達式相關應介紹

2024-05-06 14:20:53
字體:
來源:轉載
供稿:網友
string 對象
1、str.match(RegExp)
在str中搜索匹配RegExp的字符串并保存在一個數組內返回,
如果RegExp不是全局設置(/g),僅匹配一次
代碼如下:
("abc112dwfwabcwef2abc3wfwabcasqf453abcqwf24j234h").match(/abc/d*/g);
//結果
["abc112", "abc", "abc3", "abc", "abc"]

該方法中,如果正則表達式不是全局匹配模式(g標記),第一個元素將是匹配的字符串,其余是正則中捕獲的字符串,并且該數組具備2個屬性:
input 用于檢測的字符串
index 匹配的字符串在用于檢測字符串中的開始位置。
(關于這2個屬性可以參考 RegExp.exec() 方法)
2、str.search(regExp)
返回符合匹配RegExp的第一個字符串的位置,如果沒有匹配返回-1,全局標記沒有意義,因為只匹配一次,
該方法也忽略 regExp 的 lastIndex 屬性,并且總是從字符串的開始進行檢索。
3、str.replace(RegExp,replaceText)
將匹配RegExp 的字符串替換為replaceText,如果 RegExp 沒有全局設置,只匹配一次,使用全局模式將替換所有匹配的字符串。
如果RegExp 中使用了捕獲分組匹配,則replaceText中的$具有特殊含義
$1、$2、...、$99 //與 RegExp 中的第 1 到第 99 個子表達式相匹配的文本。
$& // 與 regexp 相匹配的子串。
$` // 位于匹配子串左側的文本。
$' // 位于匹配子串右側的文本。
$$ // 匹配$符號自身。
注意,你需要考慮RegExp中捕獲分組的數量,如果你只設置了2個捕獲,那$3將不再具有特殊含義
("123ab12c11d_4532").replace(/a(b/d*)c(/d*)d/,"$1@$2-")
//將得到:
"123b12@11-_4532"
4、str.replace(RegExp,function)
str.replace 的第二個參數可以是函數,函數的返回值將作為匹配字符的替換內容,
注意,如果要全局匹配RegExp仍然需要全局g標記。
函數的參數依次是:
匹配的字符串,
配置的捕獲子串(多個),
匹配字符串的開始位置,
用于匹配的原字符串
注意,請根據RegExp中捕獲分組的設置數量來定義函數參數個數,如果參數太少將可能導致“匹配字符串的開始位置” 和 “用于匹配的原字符串” 不能在參數中出現,當然也可以在函數內使用arguments對象解決這個問題,arguments(arguments.length-2) 就是匹配字符串的開始位置,arguments(arguments.length-1) 就是 用于匹配的原字符串。
代碼如下:
var newStr = ("123ab12c11d_4532").replace(/a(b/d*)c(/d*)d/g,function(s,s1,s2,pos,oldStr){
return "@"+s1+"@"+s2+"@";
}) ;
//將得到
"123@b12@11@_4532"

5、str.split(RegExp[,limit])
將字符串str用符合匹配的字符串分割成數組,limit 可選,用于限定返回的數組長度
("ada2afa4fcas6afa").split(//d/,3) // "ada,afa,fcas"
6、RegExp.exec("str") 方法
在str中查找匹配的字符串,注意,每次運行該方法只匹配一次,要匹配多個需要將RegExp設置為/g,并多次運行exec()方法,每次匹配返回值 result = RegExp.exec("str")
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 常熟市| 汕头市| 封开县| 琼海市| 广东省| 汾阳市| 岑巩县| 西盟| 平和县| 天峻县| 铜山县| 东台市| 宣恩县| 肥东县| 天台县| 杭锦旗| 综艺| 康马县| 陆川县| 梅河口市| 交口县| 万宁市| 遵义县| 义马市| 莎车县| 江都市| 咸宁市| 顺义区| 龙海市| 垦利县| 天全县| 北川| 太仆寺旗| 宣汉县| 永年县| 明光市| 万山特区| 犍为县| 海门市| 秦安县| 凌云县|