关于javascript:这个表达式不会在JS中将所有出现的“。”更改为“ – ”

This expression won't change all occurrences of “.” to “-” in JS

本问题已经有最佳答案,请猛点这里访问。

相反,它将字符串中的所有内容都改为短划线。有人能解释为什么要这样做吗?表达式如下:

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

我一直在想办法解决这个问题。我知道它不会被放在var替换物里面。它需要在变量内部才能完成问题。


.在正则表达式中有特殊意义。它的意思是"任何字符"或"除换行符以外的任何字符",这取决于口味(它不包括JS中的行终止符)。你想要/\./g(即逃离.)