我的角色转换功能的逻辑有什么问题?

时间:2019-03-24 23:03:14

标签: javascript

我试图为字符串创建一个字符更改功能,它假定将所有的“-”更改为“ _”,并且仅对第一个字符执行此操作,其余的保留。如果有人可以解释的话,将不胜感激。

<label >student</Label>:<span class="abc">He is a good boy </br> he is also kind'</span>

1 个答案:

答案 0 :(得分:3)

var nStr = str.replace("-", "_");

因此,在每次迭代中,您要替换原始字符串中的第一个找到的-字符 ,而不是替换已经替换掉的字符的字符串。您可以仅对一个重新分配的变量调用.replace

function kebabToSnake(str) {
    var idNum = str.length;
    for(var i = 0; i < idNum; i++) {
        str = str.replace("-", "_");
    }
    return str;
}
console.log(kebabToSnake('ab-cd-ef'));

(请注意,您应该从0迭代到str.length - 1,而不是从0迭代到str.length

或者,更优雅地,很多,使用全局正则表达式:

function kebabToSnake(str) {
  return str.replace(/-/g, '_');
}
console.log(kebabToSnake('ab-cd-ef'));