Как создать строку с несколькими пробелами в JavaScript

Создавая переменную

var a = 'something' + '        ' + 'something'

Я получаю это значение: 'something something',

Как я могу создать строку с несколькими пробелами на нем в JavaScript?

7 ответов

Решение

Использование \xa0 - это не пробойный символ

Ссылку из таблицы кодировки UTF-8 и символов Юникода вы можете написать так:

var a = 'something' + '\xa0\xa0\xa0\xa0\xa0\xa0\xa0' + 'something';
var a = 'something' + Array(10).fill('\xa0').join('') + 'something'

номер внутри Array(10) можно изменить на необходимое количество пробелов

Использование  

Это сущность, используемая для представления неразрывного пробела. По сути, это стандартное пространство, основное отличие в том, что браузер не должен разбивать (или переносить) строку текста в той точке, которую он занимает.

var a = 'something' + '&nbsp &nbsp &nbsp &nbsp &nbsp' + 'something'

Неразрывный пробел

Общим символьным объектом, используемым в HTML, является неразрывный пробел (& nbsp;).

Помните, что браузеры всегда будут обрезать пробелы в HTML-страницах. Если вы напишите в своем тексте 10 пробелов, браузер удалит 9 из них. Чтобы добавить реальные пробелы к вашему тексту, вы можете использовать & nbsp; персонаж персонажа.

http://www.w3schools.com/html/html_entities.asp

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

var a = 'something' + '&nbsp &nbsp &nbsp &nbsp &nbsp' + 'something';

document.body.innerHTML = a;

С помощью шаблонных литералов вы можете использовать несколько пробелов или многострочные строки и интерполяцию строк. Шаблонные литералы - это новая функция ES2015 / ES6, которая позволяет работать со строками. Синтаксис очень прост, просто используйте обратные кавычки вместо одинарных или двойных кавычек:

let a = `something                 something`;

а для создания многострочных строк просто нажмите Enter, чтобы создать новую строку без специальных символов:

let a = `something 

    
                         something`;

Результаты точно такие же, как и в строке.

В ES6 вы можете создавать такие строки:

      const a = `something ${'\xa0'.repeat(10)} something`

Просто добавьте пробел между ` ` и напечатайте переменные внутри с помощью ${var}

Вы можете использовать <pre> пометить с помощью innerHTML. HTML <pre> Элемент представляет собой предварительно отформатированный текст, который должен быть представлен точно так, как написано в файле HTML. Текст обычно отображается с использованием непропорционального ("моноширинного") шрифта. Пробелы внутри этого элемента отображаются как написано. Если вы не хотите другой шрифт, просто добавьте pre в качестве селектора в вашем файле CSS и стилизуйте его по желанию.

Пример:

var a = '<pre>something        something</pre>';
document.body.innerHTML = a;

У меня нет этой проблемы с самой строковой переменной, но только когда строка преобразуется в html.

Можно использовать replaceи регулярное выражение для перевода пробелов в защищенные пространства replace(/ /g, '\xa0').

Другие вопросы по тегам