Удалите пробелы из текста html с помощью jquery

Английский не мой родной язык, поэтому, пожалуйста, не обижайтесь. Я хочу получить текст следующего HTML, но вижу пробелы.

Мне это нужно без лишних пробелов.

Вот мой фрагмент кода:

console.info($(".subTitle").text().trim());
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
"<span class = "subTitle"><span class = "attributeTitleContainer"><strong><a class = "Attribute" href = "#">Location</a></strong>: <span class = "attributeTitleValue"> "Chennai"</span>                <span class = "titleSeparator"> => </span></span><span class = "attributeTitleContainer"><strong><a class = "Attribute" href = "#">Designation</a></strong>: <span class = "attributeTitleValue"> "Senior Graphic Artist"</span>                <span class = "titleSeparator"> => </span></span><span>END</span>

Я не хочу удалять все пробелы. Как вы можете видеть во фрагменте, между ними есть одинарные пробелы. Я просто хочу удалить другие лишние пробелы.

Karthik 16.05.2018 11:32

Желателен ли источник блока скрипта? console.info($(".subTitle").text().trim()); См. Мой ответ, результаты - это весь текст, кроме кода.

zer00ne 16.05.2018 11:38

@ zer00ne Опять проблемы с форматированием. Я не хочу удалять существующие пробелы из HTML, но лишние пробелы, которые я получаю из кода jQuery. Ваш код удаляет пробелы, но также удаляет существующие пробелы.

Karthik 16.05.2018 11:46

Определите разницу между пробелами и существующими пробелами

zer00ne 16.05.2018 11:48

есть один пробел: <Location: "Chennai"> (фактический html-текст) после получения обрезанного текста: <Location: "Chennai"> Надеюсь, теперь вы можете увидеть изменения. обрезка также удалит это единственное пространство, которое мне не нужно.

Karthik 16.05.2018 11:51

Думаю, теперь я понял, см. Обновленный ответ.

zer00ne 16.05.2018 12:17

@ zer00ne Да, чувак. Я понял. Спасибо .. Я доволен всеми остальными ответами, но не хватало только дополнительного места в reg exp.

Karthik 16.05.2018 12:24

Отлично, я рад, что ты это понял. Удачного кодирования.

zer00ne 16.05.2018 13:09
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
1
8
103
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Чтобы удалить все пробельные символы, используйте Замена строки:

console.info($(".subTitle").text().replace(/\s+/g, ''));
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
"<span class = "subTitle"><span class = "attributeTitleContainer"><strong><a class = "Attribute" href = "#">Location</a></strong>: <span class = "attributeTitleValue"> "Chennai"</span>                <span class = "titleSeparator"> => </span></span><span class = "attributeTitleContainer"><strong><a class = "Attribute" href = "#">Designation</a></strong>: <span class = "attributeTitleValue"> "Senior Graphic Artist"</span>                <span class = "titleSeparator"> => </span></span><span>END</span>

Обратите внимание, что класс символов \s соответствует всем пробельным символам, а именно:

Matches a single white space character, including space, tab, form feed, line feed and other Unicode spaces. Equivalent to [ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff].

Используйте replace пространства в глобальном масштабе, например replace(/\s+/g, '') вместо trim(). trim() обрезает только начальные и конечные пробелы.

console.info($(".subTitle").text().replace(/\s+/g, ''));
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    "<span class = "subTitle"><span class = "attributeTitleContainer"><strong><a class = "Attribute" href = "#">Location</a></strong>: <span class = "attributeTitleValue"> "Chennai"</span>                <span class = "titleSeparator"> => </span></span><span class = "attributeTitleContainer"><strong><a class = "Attribute" href = "#">Designation</a></strong>: <span class = "attributeTitleValue"> "Senior Graphic Artist"</span>                <span class = "titleSeparator"> => </span></span><span>END</span>
Ответ принят как подходящий

Вы можете использовать replace() с этим RegEx: /\s/g. Ваш код OP (и, по-видимому, некоторые другие сообщения) включает код в блоке <script>, за исключением моего ответа. Я считаю это нежелательным. Если да, добавьте отсутствующий закрывающий тег </span>.

console.info ($ (". подзаголовок"). text (). trim ());

Демо

var res = $('.subTitle')[0].textContent.replace(/(\s)+/g, ' ').trim();

console.info(res);
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
"<span class = "subTitle">
  <span class = "attributeTitleContainer">
    <strong><a class = "Attribute" href = "#">Location</a></strong>: 
    <span class = "attributeTitleValue"> "Chennai"</span>
<span class = "titleSeparator"> => </span>
</span>
<span class = "attributeTitleContainer">
    <strong><a class = "Attribute" href = "#">Designation</a></strong>:    <span class = "attributeTitleValue"> "Senior Graphic Artist"</span>
<span class = "titleSeparator"> => </span>
</span>
<span>END</span>
</span>

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