Удалить длинную черту из строки в JavaScript?

В моем веб-приложении обнаружена ошибка, которую я не знаю, как исправить.

Текстовые поля посылают мне длинную черту как часть их содержимого (вы знаете, специальную длинную черту, которую MS Word автоматически вставляет иногда). Однако я не могу найти способ заменить его; поскольку, если я попытаюсь скопировать этот символ и поместить его в оператор JavaScript str.replace, он не будет правильно отображаться и нарушит работу сценария.

Как я могу это исправить?

Конкретный символ, который его убивает, это & # x2014 ;.

Кроме того, если это помогает, я передаю значение в качестве параметра GET, а затем кодирую его в XML и отправляю на сервер.

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

ведущих себя так, и вы можете использовать их в html позже. Более общим способом решения этой проблемы может быть замена всех «расширенных символов»; с их HTML-кодированным эквивалентом. Вы можете сделать это так:

[yourstring].replace(/[\u0080-\uC350]/g, 
                      function(a) {
                        return '&#'+a.charCodeAt(0)+';';
                      }
);

text = text.replace(/\u2013|\u2014/g, "-");

Заменяетall – (& # x2013;) и— (& # x2014;) символы с простыми черточками (-).

DEMO: http://jsfiddle.net/F953H/

Эм Дэш, Вы можете заменить его так:

str.replace('\u2014', '');​​​​​​​​​​

Вот пример Fiddle:http://jsfiddle.net/x67Ph/

\u2014 называетсяescape-последовательность Юникода, Это позволяет указать символ юникода по его коду. 2014 случается с Em Dash.

http://en.wikipedia.org/wiki/Dash

Вы можете заменить символы Unicode напрямую, используя escape-код Unicode:

'—my string'.replace( /[\u2012\u2013\u2014\u2015]/g, '' )

ВАШ ОТВЕТ НА ВОПРОС