1.将所有单词首字母换成大写
var str="javascript is a best language";
var reg=/\b(\w+)\b/g;//【匹配一个单词】
str.replace(reg,function(word){
var reg=/\w+?/;//【非贪婪模式,每个单词的第一个字符】
return word.replace(reg,function(w){
return w.toUpperCase();
});
});
**
replace详解
**
replace(reg,function(arguments){
//返回结果作为替换字符,如果没有返回,默认返回undefined
})
//参数arguments详解
var str="aa javascript 8.12 sad aa css 9.14 sad"
var reg=/(\w+)\s+(\d+)\.(\d+)/;//【非全局,每次只匹配第一个】
str.replace(reg,function(){
console.log(arguments);
});
//["javascript 8.12", "javascript", "8", "12", 3, "aa javascript 8.12 sad aa css 9.14 sad"]
//[第一个匹配项,第一个子选项,第二个子选项,第三个子选项,当前匹配项索引,原字符串]
var str="aa javascript 8.12 sad aa css 9.14 sad"
var reg=/(\w+)\s+(\d+)\.(\d+)/;//【全局,匹配所有】
str.replace(reg,function(){
console.log(arguments);
});
//["javascript 8.12", "javascript", "8", "12", 3, "aa javascript 8.12 sad aa css 9.14 sad"]
["css 9.14", "css", "9", "14", 27, "aa javascript 8.12 sad aa css 9.14 sad"]
贪婪匹配和非贪婪匹配
贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。
非贪婪匹配:就是匹配到结果就好,就少的匹配字符。
默认是贪婪模式;在量词后面直接加上一个问号?就是非贪婪模式。
贪婪模式的标示符:
【+】 【?】【*】【{n}】 【{n,}】【{n,m}】
惰性模式:
【+?】 【??】【*?】【{n}?】 【{n,}?】【{n,m}?】
//贪婪匹配
var str='aaa12345678';
var reg=/[a-z]+\d{3,}/;
str.match(reg);
//aaa12345678
//非贪婪匹配
var reg=/[a-z]+\d{3,}?/;
str.match(reg);
//aaa123