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个子表达式匹配的字符串,倒数第二个是匹配的下标,最后一个是整个字符串。

学而不思则罔,思而不结则殆,结而不看,一事无成
原文地址:https://www.cnblogs.com/windseek/p/8427321.html