Замена двоеточия двойной обратной косой чертой

#javascript #replace

#javascript #заменить

Вопрос:

Мне нужно заменить : на двойную обратную косую \ черту, но приведенный ниже код игнорирует одну косую черту.

 var original_id = $j(element).attr('id'); // e.g. sub:777

var new_id = original_id.split(":");

new_id = new_id.join("\:");

alert(new_id);  
  

Вместо отображения sub\:777 sub:777 отображается. Код игнорирует одну косую черту.

Я был бы признателен, если бы кто-нибудь мог показать мне мою ошибку.

Ответ №1:

Вы должны избегать обратной косой черты:

 new_id = new_id.join("\\:");
  

Некоторые подробности см. в разделе Специальные символы JavaScript.

Ответ №2:

используется как escape-символ во многих языках для таких вещей, как n для новой строки. Причина, по которой вы видите один, заключается в том, что он экранируется первым . (в противном случае это было бы невидимо для вас). Чтобы исправить это, экранируйте два s следующим образом: "\\:"