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

首頁 > 編程 > JavaScript > 正文

js replace() 文本替換你所不知的

2019-11-21 00:40:01
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

//把word-word轉化為wordWord
function camelize(s){
return s.replace(/-(/w)/g, function(strMatch, p1){
return p1.toUpperCas();
});
}

這里應用到了文本替換函數replace,他的一般語法估計大家都已經耳熟能詳了,現在介紹一下當他的第二個參數為函數時的情形。

今天我在群里發這個函數的時候,有個人反映很快,說上面的那個正則寫錯了“/-(/w)/g”,而后很快又明白了,他的疑惑是這個“()”,其實這個括號是很必要的:

(x)匹配x,將x保存在名為$1,$2...$9的變量中,其實就是給其加一個索引,方便后面的調用。如果不加這個括號就會出錯了:


好的,下面介紹一下函數參數的意義,為什么這個函數能夠實現指定的功能呢?

ECMAScript v3 規定,replace() 方法的參數 replacement 可以是函數而不是字符串。在這種情況下,每個匹配都調用該函數,它返回的字符串將作為替換文本使用。該函數的第一個參數是匹配模式的字符串。接下來的參數是與模式中的子表達式匹配的字符串,可以有 0 個或多個這樣的參數。接下來的參數是一個整數,聲明了匹配在 stringObject 中出現的位置。最后一個參數是 stringObject 本身。

看起來好像有點煩,舉個例子:

復制代碼 代碼如下:

camelize(www-rrr);

也就是調用一下,其實上面的strMatch值為-r,就是與正則匹配的字符串(該函數的第一個參數是匹配模式的字符串),

上面的p1的值是r,指的是緊接著-后面的r(接下來的參數是與模式中的子表達式匹配的字符串),就是我們規定的索引――“(/w)”。

好了,我想之后這個函數要執行什么應該能看的很清楚了,呵呵,就到這里了,歡迎補充提議。


[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲阳县| 缙云县| 清新县| 水城县| 海门市| 平和县| 绥棱县| 永靖县| 天峨县| 武乡县| 新野县| 梨树县| 兴文县| 高要市| 息烽县| 赤水市| 岳阳市| 加查县| 马边| 南乐县| 周口市| 嘉义县| 新竹市| 砚山县| 信丰县| 思茅市| 正蓝旗| 璧山县| 民勤县| 江山市| 西充县| 汉源县| 南木林县| 乌鲁木齐市| 安龙县| 嘉善县| 盱眙县| 沂水县| 新竹市| 依安县| 温州市|