正则替换replace中$1的用法以及常用正则
生活随笔
收集整理的這篇文章主要介紹了
正则替换replace中$1的用法以及常用正则
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、repalce定義
用于在字符串中用一些字符替換另一些字符,或替換一個與正則表達(dá)式匹配的子串。
stringObject.replace(regexp/substr,replacement); 參數(shù)一:必需,規(guī)定的字符串或者正則表達(dá)式 參數(shù)二:必需,一個字符串值。規(guī)定了替換文本或生成替換文本的函數(shù)。 !!!replacement 中的 $ 字符具有特定的含義。詳情見W3C
二、有$1,$2...的例子
//把 "Doe, John" 轉(zhuǎn)換為 "John Doe" 的形式: var str = "Doe, John"; str.replace(/(w+)s*, s*(w+)/, "$2 $1"); 說明:$1,$2上就是按順序?qū)?yīng)小括號里面的小正則 捕獲到的內(nèi)容。
三,第二個參數(shù)是函數(shù)
把字符串中所有單詞的首字母都轉(zhuǎn)換為大寫:
var str = 'aaa bbb ccc';
uw=str.replace(/w+/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);}
);
說明:匹配一次就執(zhí)行一次函數(shù),匹配的內(nèi)容作為參數(shù)
//把數(shù)字轉(zhuǎn)成對應(yīng)的漢子
var ary=["一","二","三","四","五","六"]
"123456".replace(/d/g,function(val){
return ary[val-1]
})
四、一個栗子,實現(xiàn)模板字符替換
var obj = {
name:'leaf',
age:20
}
var str = "我是{{name}},name是我的名字,我今年{{age}}歲";
//最終替換成"我是leaf,name是我的名字,我今年20歲"
實現(xiàn):
function render(template, context) {
return template.replace(/{{(.*?)}}/g, (match, key) => context[key.trim()]);
}
說明:
1、.*? 非貪婪匹配模式
2、每個匹配的這則組合執(zhí)行一次函數(shù)
五、其他常用正則替換
//去除空格
String.prototype.Trim = function() {
return this.replace(/s+/g, "");
}
//去除換行
function ClearBr(key) {
key = key.replace(/</?.+?>/g,"");
key = key.replace(/[
]/g, "");
return key;
}
//去除左側(cè)空格
function LTrim(str) {
return str.replace(/^s*/g,"");
}
//去右空格
function RTrim(str) {
return str.replace(/s*$/g,"");
}
//去掉字符串兩端的空格
function trim(str) {
return str.replace(/(^s*)|(s*$)/g, "");
}
//去除字符串中間空格
function CTim(str) {
return str.replace(/s/g,'');
}
//是否為由數(shù)字組成的字符串
function is_digitals(str) {
var reg=/^[0-9]*$/; //匹配整數(shù)
return reg.test(str);
}
//單詞首字母大寫
function uppperCase(str) { return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase()); }
六、其他
正則匹配url:
/^https?://(([a-zA-Z0-9_-])+(.)?)*(:d+)?(/((.)?(?)?=?&?[a-zA-Z0-9_-](?)?)*)*$/i
或者:
(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]
總結(jié)
以上是生活随笔為你收集整理的正则替换replace中$1的用法以及常用正则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mock模拟数据的使用方法
- 下一篇: ubuntu 16.04 apt-get