Удаление пробелов без разрывов строк в текстовой области JS или jQuery

Я хочу убрать лишние пробелы в начале и конце строк, но сохранить разрывы строк, это то, что я пытался.

function removeSpaces(string) {
 return string.split(' ').join('');
}
<center>
 <form action="getid.php" method="post">
  <textarea name="items" id="itemNames" cols="100" rows="10" onblur="this.value=removeSpaces(this.value);"></textarea><br />
  <input type="submit" value="Get dem IDs">
  <input type="button" id="remove" value="Remove extra spaces">
 </form>
</center>

Но вместо этого он удаляет ВСЕ пробелы и '\n'

3 ответа

Просто используйте .trim()

function removeSpaces(string) {
      return string.trim();
}
function removeSpaces(string) {
        // Remove line breaks
        var str = string.replace(/\n/g,"");     
        return str.split(' ').join('');   
}

Ваш код наиболее определенно удалит все пробелы.

string.split(' ')

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

Мой подход заключается в следующем:

function removeSpaces(string) {
    // Remove leading spaces
    while(string.indexOf(' ') === 0) {
        string = string.substr(1);
    }
    // Remove trailing spaces
    while(string[string.length-1] === ' ') {
        string = string.substr(0, string.length-1);
    }
    return string;
}

Надеюсь это поможет!:)

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