replace函数结合正则表达式实现转化成驼峰与转化成连接字符串的方法
//连接符转成驼峰写法 function toCamel(str){ var reg=/-(\w)/g; return str.replace(reg,function(){ return arguments[1].toUpperCase(); });; } console.log(toCamel("dfd-dsfd-eeee-fgg")); //驼峰写法转成连接符 function toHyphenate(str){ var reg=/\B([A-Z])/g; return str.replace(reg,"-$1").toLowerCase(); } function toHyphenate(str){ var reg=/\B([A-Z])/g; return str.replace(reg,function(){ console.log(arguments); return "-"+arguments[1].toLowerCase(); }); } console.log(toHyphenate("jjIjjjLkkkGFjjjUHUJJJkkkI"));
replace方法里的参数,第一个是正则表达式,第二个是$1,$2,$3,,,,,,,,,等子表达式,如果第二个参数传的不是一个字符串,而是一个方法,在方法里会有一些默认参数,第一个是匹配的字符串,第二个是第一个子表达式匹配的字符串,第n个是第n个子表达式匹配的字符串,倒数第二个是匹配的下标,最后一个是整个字符串。
学而不思则罔,思而不结则殆,结而不看,一事无成