Javascript 我的简单正则表达式替换函数是';他根本不工作

Javascript 我的简单正则表达式替换函数是';他根本不工作,javascript,regex,Javascript,Regex,该函数的思想是通过使用正则表达式捕获组捕获大写字母,进行修改,然后重新插入,将camelCase转换为spinalcase。捕获组工作,但替换功能不起作用,我开始患上regex偏头痛 函数spinalCase(str){ var regexp=/([A-Z]{1})/g; var匹配; var匹配=”; var-myRegexp; while((match=regexp.exec(str))!=null){ matches=“-”+匹配[1]。toLowerCase(); //匹配=“t”、“

该函数的思想是通过使用正则表达式捕获组捕获大写字母,进行修改,然后重新插入,将camelCase转换为spinalcase。捕获组工作,但替换功能不起作用,我开始患上regex偏头痛

函数spinalCase(str){
var regexp=/([A-Z]{1})/g;
var匹配;
var匹配=”;
var-myRegexp;
while((match=regexp.exec(str))!=null){
matches=“-”+匹配[1]。toLowerCase();
//匹配=“t”、“i”、“s”、“t”
myRegexp=新的RegExp(匹配[1],“g”);
str.replace(myRegexp,匹配项);
}
返回str;
//返回未经修改的原始字符串
}

log(spinalCase('ThisIsSpinalTap')在ES6中,整个功能可以由一个简单的一行程序替代:

var spinalCase = str => str.replace(/[A-Z]/g, match => '-' + match.toLowerCase());
ES6之前(但由于吊装规则不完全相同):


'ThisIsSpinalTap'.replace(/[A-Z]/g,函数(m){return“-”+m.toLowerCase();})
您没有从
replace分配结果。
function spinalCase(str) {
    return str.replace(/[A-Z]/g, function(match) {
        return '-' + match.toLowerCase();
    }
}