用短划线替换字母

Vis*_*lXZ 3 javascript regex string replace

非常非常初级,如果不合适就道歉.

我试图用破折号替换字符串中的所有字母,如果它只有一个字符,我的代码可以工作,但是不能有多个字符.我尝试了for循环,但是也没有用.我一直在读其他线程,比如: 其他线程,但无法弄清楚我做错了什么,而且我已经读了一段时间了.任何人都可以帮我吗?

到目前为止这是我的代码:

function replaceLettersWithDashes(str) {
  /* This function will receive a string with a mix of characters. It should return the string with all letters replaced by dashes ('-').

    For example 'You like cake' should return '--- ---- ----', and 'Tree 4, 6, 8' should return '---- 4, 6, 8'.

    */

     return str.replace(/^[a-zA-Z]+$/g , '-');


}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Nin*_*olz 5

您可以搜索单个字母并将其替换为此正则表达式,该表达式会查找一个字母并用短划线替换每个字母.这些标志'g''i'对全球的搜索和区分大小写的搜索.

/[a-z]/gi
Run Code Online (Sandbox Code Playgroud)

如果您使用+*作为量词,您将获得以下所有字母并将其替换为单个短划线,这是不需要的.

function replaceLettersWithDashes(str) {
    return str.replace(/[a-z]/gi , '-');
}

console.log(replaceLettersWithDashes('You like cake'));
console.log(replaceLettersWithDashes('Tree 4, 6, 8'));
Run Code Online (Sandbox Code Playgroud)