Javascript 此表达式不会将JS中出现的所有“.”更改为“-”

Javascript 此表达式不会将JS中出现的所有“.”更改为“-”,javascript,regex,Javascript,Regex,相反,它将字符串中的所有内容都更改为破折号。有人能解释一下它为什么这么做吗? 下面是一个表达: var replaceDots = function(str) { return str.replace(/./g, '-'); } 我想弄明白这件事已经有一段时间了。我知道它不会被放在点的内部。它需要在变量中才能完成问题 。在正则表达式中有特殊的含义。它表示任何字符或除换行符以外的任何字符,这取决于它在JS中排除行终止符的风格。您需要/\./g,即用RegEx转义.,句点。是表示任何字符的

相反,它将字符串中的所有内容都更改为破折号。有人能解释一下它为什么这么做吗? 下面是一个表达:

var replaceDots = function(str) {
    return str.replace(/./g, '-');
}

我想弄明白这件事已经有一段时间了。我知道它不会被放在点的内部。它需要在变量中才能完成问题

。在正则表达式中有特殊的含义。它表示任何字符或除换行符以外的任何字符,这取决于它在JS中排除行终止符的风格。您需要/\./g,即用RegEx转义.

,句点。是表示任何字符的通配符,这就是它将所有内容更改为破折号的原因。试试这个:str.replace/\./g,“-”,因为如果你想表示句点本身而不是通配符,你需要用反斜杠“`”来转义它。这是唯一一个提供解释的答案。