функция javascript для замены пробела

Привет, не могли бы вы дать мне функцию javascript для замены пробелов на  

я погуглил и не могу заставить их работать. Сейчас я использую эту функцию:

  function escapeHTMLEncode(str) 
        {
            var div = document.createElement('div');
            var text = document.createTextNode(str);
            div.appendChild(text);
            return div.innerHTML;
        }

person edsamiracle    schedule 05.11.2012    source источник
comment
Этот код работает с символами, которые на самом деле должны быть экранированы в HTML, например > (экранированы как >). Но   - это не то же самое, что пробел.   -  person Matt Ball    schedule 05.11.2012
comment
возможный дубликат Как преобразовать пробелы в javascript   -  person Matt Ball    schedule 05.11.2012
comment
\ s соответствует пробелам (пробелы, табуляции и новые строки).   -  person Arun Killu    schedule 05.11.2012
comment
Взгляните на Преобразование специальных символов в HTML в Javascript   -  person Dan Dascalescu    schedule 05.11.2012


Ответы (1)


Ознакомьтесь с регулярными выражениями:

return str.replace(/\s+/g, ' ');

Однако название вашей функции escapeHTMLEncode предполагает, что вы хотите сделать больше, чем просто заменить пробелы. Вы можете уточнить свой вопрос? См. Также Преобразование специальных символов в HTML в Javascript, что кажется что вы пытаетесь сделать.

Обратите внимание, что шаблон \s+ будет соответствовать любой последовательности последовательных пробелов. Если вы хотите заменить только пробелы (), and replace each of them with  , используйте

return str.replace(/ /g, ' ');
person Dan Dascalescu    schedule 05.11.2012
comment
моя функция заменяет ‹,› ,, &, однако она не заменяет пробелы на & nbsp - person edsamiracle; 05.11.2012
comment
Возможно, лучше использовать / /g - OP, вероятно, не хочет заменять все пробелы, а только фактические символы пробела. Также я подозреваю, что следует заменять каждое отдельное пространство, а не каждую группу пространств, поэтому нет +. @aedz - изменение пробела на   не позволяет избежать экранирования. - person nnnnnn; 05.11.2012