`string.replace` странное поведение при использовании знака доллара ($) в качестве замены

javascript

8197 просмотра

2 ответа

Я обнаружил ошибку в своем коде JavaScript, которую я выделил для замены строки, которая действует так, как я и не ожидал. Вот пример кода:

var text = "as";
text = text.replace(text,"$\'");
console.log(text);

Это печатает пустую строку в консоль. Я ожидал, что он выведет $ 'на консоль. Кто-нибудь может объяснить это?

Источник Размещён: 12.11.2019 09:49

Ответы (2)


20 плюса

Решение

Для использования $в результирующей строке используйте $$as как $особое значение в регулярных выражениях JavaScript и replaceметоде String : https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter

Автор: Misha Reyzlin Размещён: 24.02.2012 12:43

13 плюса

Если я не знаю, что находится в моей строке замены, я использую

replaceWith = "might have 2 $ signs $$ $$$ $$$$"
"a b c".replace("b", replaceWith) // unexpected result
"a b c".replace("b", function(){return replaceWith}) // no surprises
Автор: Duppy Размещён: 31.12.2015 08:50
Вопросы из категории :
32x32