Those two regex act the same way:
var str = "43gf\\..--.65";
console.log(str.replace(/[^\d.-]/g, ""));
console.log(str.replace(/[^\d\.-]/g, ""));
In the first regex I don’t escape the dot(.) while in the second regex I do(\.).
What are the differences? Why is the result the same?
Because the dot is inside character class (square brackets
[]).Take a look at http://www.regular-expressions.info/reference.html, it says (under char class section):