Sascha Manns Ответов: 4

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


У меня есть заданная строка. Прежде чем добавить его в базу данных, мне нужно проверить, задано ли последнее пространство. Если да, то он должен удалить их.

Как я могу это сделать?

Что я уже пробовал:

Я попробовал это сделать

input.split(' ').join('');
, Который удаляет все пробелы.

Kornfeld Eliyahu Peter

Только финал? Не ведущий?

F-ES Sitecore

google "javascript remove trailing space", и вы получите ответ в считанные секунды.

Sascha Manns

Да только последний.

4 Ответов

Рейтинг:
35

Kornfeld Eliyahu Peter

Для очистки как передних, так и задних пробелов существует метод trim ()...
Есть также trimEnd() и trimStart(), но некоторые браузеры их не поддерживают...
Для всех существует подход регулярных выражений (trim() на самом деле является оболочкой для этого)...

input.replace(/\s+$/, '');


Sascha Manns

Большое вам спасибо.

Maciej Los

5ed!

Kornfeld Eliyahu Peter

Спасибо...

Рейтинг:
2

Patrice T

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

Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
RegExr: Learn, Build, & Test RegEx[^]
Этот пример показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]


Kornfeld Eliyahu Peter

Добавить в свой список :-)
https://regex101.com/
https://regexper.com/

Patrice T

Спасибо,
Я займусь ими после работы.

Patrice T

Добавлено к моим рекомендациям.
Но мне больше нравится Debuggex, чем regexper, потому что он также позволяет проверить, что соответствует регулярному выражению.

Sascha Manns

Спасибо Вам за ваши ссылки. Это очень помогает.

Patrice T

Спасибо,
Мне особенно нравится debuggex

Рейтинг:
1

Clifford Nelson

Регулярное выражение для этого-перебор. Нет никакой необходимости в хите производительности для такой простой задачи. Я бы сказал, что самое быстрое-это проверить, есть ли последнее пространство, а затем обновить его;

private static bool CheckEndingBlank(ref string str)
{
    if (str[str.Length - 1] == ' ')
    {
        str = str.TrimEnd(' ');
        return true;
    }
    return false;
}


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


Maciej Los

5ed!

0x01AA

Надеюсь, никто не будет использовать его с пустой строкой ;)

Clifford Nelson

Что ж, это правда. Если это возможно, то вам нужно будет добавить чек. Вы могли бы сделать это условием, а затем должны иметь отладку.Утверждать. :-}

Рейтинг:
0

Member 13887763

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

var str = "       Hello World!     ";
var trim = str.trim()


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

var str = "       Hello World!     ";
var trim = str.replace(/(\s+$)/g, "")


Надеюсь, это вам поможет.


Sascha Manns

Большое вам спасибо за помощь.