Как удалить начальные и конечные пробелы из заданной строки HTML?

У меня есть следующая строка HTML. Каким будет пример кода в JavaScript для удаления начальных и конечных пробелов из этой строки?

<code><p>&nbsp;&nbsp;</p>
<div>&nbsp;</div>
Trimming using JavaScript<br />
<br />
<br />
<br />
all leading and trailing white spaces
<p>&nbsp;&nbsp;</p>
<div>&nbsp;</div>
</code>
 Chris Baker01 авг. 2014 г., 02:01
@ Я не знаю, решали ли вы когда-нибудь это, но вы можете попробовать одно из следующих решений:stackoverflow.com/questions/16708158/…
 Rob W05 апр. 2012 г., 18:06
В чем твоя настоящая проблема? Вы хотите удалить пробелы перед вставкой узлов в документ?
 musefan05 апр. 2012 г., 18:06
 Sunil05 апр. 2012 г., 18:17
Я хочу удалить все пробелы, а также все пробелы в конце. Мне очень нравится метод Trim в C #, за исключением того, что он удаляет даже пробелы.
 Sunil05 апр. 2012 г., 18:23
Таким образом, в моем примере я наконец должен получить следующее после обрезки: Обрезка с использованием JavaScript & lt; br / & lt; br / & lt; br / & lt; br / & gt; br / & gt; всех начальных и конечных пробелов

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

Если вы работаете с многострочной строкой, например с файлом кода:

<html>
    <title>test</title>
    <body>
        <h1>test</h1>
    </body>
</html>

И хочу заменить все ведущие строки, чтобы получить такой результат:

<html>
<title>test</title>
<body>
<h1>test</h1>
</body>
</html>

Вы должны добавитьmultiline флаг для вашего регулярного выражения,^ а также$ матч строка за строкой:

string.replace(/^\s+|\s+$/gm, '');

Соответствующая цитатаиз документов:

The "m" flag indicates that a multiline input string should be treated as multiple lines. For example, if "m" is used, "^" and "$" change from matching at only the start or end of the entire string to the start or end of any line within the string.

Смотрите метод Stringtrim() - https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/Trim

var myString = '  bunch    of <br> string data with<p>trailing</p> and leading space   ';
myString = myString.trim();
// or myString = String.trim(myString);

Edit

Как отмечено в других комментариях, можно использовать подход регулярных выражений.trim Метод - это просто псевдоним для регулярного выражения:

if(!String.prototype.trim) {  
  String.prototype.trim = function () {  
    return this.replace(/^\s+|\s+$/g,'');  
  };  
} 

... это внедрит метод в собственный прототип для тех браузеров, которые все еще плавают в мелком конце бассейна.

 20 февр. 2018 г., 21:39
почему нет отметки в ответе со 170 ответами? ТАК смущает меня иногда.
 03 сент. 2013 г., 17:45
@bsa Я понял, что он имеет в виду «пробел» в визуальном смысле, как в «визуально пустых областях результатов рендеринга HTML», а затем он добавил в комментарии выше «за исключением новых строк, вызванныхbr метки & Quot ;.
 Sunil05 апр. 2012 г., 18:20
Метод обрезки не обрезает пробелы, а только пробелы. Так что это не то, что я ищу.
 02 сент. 2013 г., 08:14
Я не уверен, что вы думаете "пробелы" есть, но обрезка удалит пробел в целом (перевод строки, пробел, табуляция и т. д.), а не только пробел.
 05 апр. 2012 г., 18:07
Я бы предпочел способ регулярных выражений, поскольку он не поддерживается во всех браузерах (cough cough IE & lt; 9).

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

Я придумала решение, основанное на вашем комментарии, для вывода, который вы ищете:

Trimming using JavaScript<br /><br /><br /><br />all leading and trailing white spaces 

var str = "<p>&nbsp;&nbsp;</p><div>&nbsp;</div>Trimming using JavaScript<br /><br /><br /><br />all leading and trailing white spaces<p>&nbsp;&nbsp;</p><div>&nbsp;</div>";
console.log(str.trim().replace(/&nbsp;/g, '').replace(/<[^\/>][^>]*><\/[^>]+>/g, ""));

.trim() удаляет начальные и конечные пробелы

.replace(/&nbsp;/g, '') удаляет&nbsp;

.replace(/<[^\/>][^>]*><\/[^>]+>/g, "")); удаляет пустые теги

var trim = your_string.replace(/^\s+|\s+$/g, '');
 26 авг. 2013 г., 07:53
это уберет пробел
 Sunil04 апр. 2013 г., 02:17
Удалит ли это пробелы, такие как & lt; br / & gt; или & lt; p & amp; nbsp; & nbsp; / p & gt; & Lt; & DIV GT; & амп; NBSP; & Lt; / дел & GT; ? Простое простое пространство не является проблемой. Это удаление пустого пространства, что я после.

01). Если вам нужно удалить только начальные и конечные пробелы, используйте это:

var address = "  No.255 Colombo  "
address.replace(/^[ ]+|[ ]+$/g,'');

это вернет строку "No.255 Colombo"

02). Если вам нужно удалить все пробелы, используйте это:

var address = "  No.255 Colombo  "
address.replace(/\s/g,"");

это вернет строку "No.255Colombo"

string.replace(/^\s+|\s+$/g, "");
 05 апр. 2012 г., 18:07
Прочитайте вопрос,&nbsp; используется вместо обычного пробела. Кроме того, пробел содержится в теге.
 Sunil05 апр. 2012 г., 18:16
Он не делает то, что мне нужно.
var str = "  my awesome string   "
str.trim();    

для старых браузеров используйте регулярные выражения

str = str.replace(/^[ ]+|[ ]+$/g,'')
//str = "my awesome string" 
 11 авг. 2015 г., 16:31
@Flimzy: Да, было бы больше смысла писать[\t\n\ ] или просто\s вместо[ ] что не имеет смысла.
 15 мар. 2015 г., 00:40
& quot; [] & quot; точно так же, как & quot; & Quot ;. Группировка символов ровно из одного символа ... ну ... ровно один символ.

Ваш ответ на вопрос