Javascript 如何使正则表达式匹配两个参数并将它们分组

Javascript 如何使正则表达式匹配两个参数并将它们分组,javascript,regex,replace,Javascript,Regex,Replace,我正在尝试编写将字符串更改为CamelCase的代码。测试用例中的字符串同时具有下划线分隔符和破折号分隔符。所以目前,上面的代码适用于下划线,但不适用于破折号。如何在表达式中添加破折号,使其与破折号或下划线匹配 尝试在这两个可能的字符之间使用管道,这里的(|-)表示下划线或破折号 function toCamelCase(str){ str.replace(/_(.)/g, function(match, group1) { return group1.toUpperCase

我正在尝试编写将字符串更改为CamelCase的代码。测试用例中的字符串同时具有下划线分隔符和破折号分隔符。所以目前,上面的代码适用于下划线,但不适用于破折号。如何在表达式中添加破折号,使其与破折号或下划线匹配

尝试在这两个可能的字符之间使用管道,这里的
(|-)
表示下划线或破折号

function toCamelCase(str){

 str.replace(/_(.)/g, function(match, group1) {
        return group1.toUpperCase();
    });

}

如果需要在单个字符之间切换,最佳的表达方式是使用:

函数到内存库(str){
return str.replace(/[[u-]()/g,函数(匹配,组1){
返回group1.toUpperCase();
});
}
var s=“你好,去骆驼箱”

警报(toCamelCase))
这将不起作用,因为现在破折号或下划线将在组1中捕获。是的,这是我的错,在这种情况下,不捕获将起作用。我的编辑刚刚试过这个,它没有通过测试。还有其他建议吗?你的测试用例是什么。Test.assertEquals(toCamelCase(“”),“”,“提供了一个空字符串,但未返回”)2。测试。资产质量(toCamelCase(“theStealthWarrior”)、“theStealthWarrior”、“toCamelCase(“theStealthWarrior”)未返回正确值)3。测试。assertEquals(toCamelCase(“隐形战士”)、“TheStealthWarrior”、“toCamelCase”(“TheStealthWarrior”)未返回正确值)4。Test.assertEquals(toCamelCase(“A-B-C”),“ABC”,“toCamelCase(“A-B-C”)没有返回正确的值”)哦,是的,您的函数有错误-它没有返回任何内容。查看我的更新答案和代码片段。这是真的,没有返回语句,现在可以工作了。
function toCamelCase(str){

 str.replace(/(?:_|-)(.)/g, function(match, group1) {
        return group1.toUpperCase();
    });

}