Точка выхода в диапазоне регулярных выражений

По некоторым причинам эти два регулярных выражения действуют одинаково:

<code>"43\\gf..--.65".replace(/[^\d.-]/g, "");​  // 43..--.65
"43\\gf..--.65".replace(/[^\d\.-]/g, "");​  // 43..--.65
</code>

демонстрация

В первом регулярном выражении я не убегаю от точки (.) в то время как во втором регулярном выражении я делаю (\.).

В чем различия и почему они действуют одинаково?

Ответы на вопрос(4)

Решение Вопроса

[]).

Взгляни наhttp://www.regular-expressions.info/reference.html, он говорит (в разделе класса char):

Any character except ^-]\ add that character to the possible matches for the character class.

 01 мая 2012 г., 15:15
Если вы хотите использовать дефис, добавьте его сразу после открытия квадратной скобки, например, [A-Z]. В противном случае дефис указывает диапазон. Это работает в вашем случае, вероятно, только потому, что вы не указываете диапазон в регулярном выражении, но я предлагаю вам следовать этой ссылке, если вы добавите диапазон позже.
 gdoron01 мая 2012 г., 15:09
и минус (-) необходимо экранировать, только если он находится в середине диапазона?
 01 мая 2012 г., 15:31
или непосредственно перед закрывающей скобкой, или вы можете избежать его с косой чертой

попробуйте\\. вместо\..

Он действует так же, потому что JS удаляет первую обратную косую черту.

эта веб-страница, Я вижу это:

& quot; Помните, что точка не является метасимволом внутри класса символов, поэтому нам не нужно экранировать ее обратной косой чертой. & quot;

Так что я думаю, что убегать от него нет необходимости ...

. не нужно экранировать внутри класса персонажа[].

Ваш ответ на вопрос