//连接符转成驼峰写法 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个子表达式匹配的字符串,倒数第二个是匹配的下标,最后一个是整个字符串。