Как обрезать пробелы между словом и после запятой с помощью JavaScript - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть следующая строка с именем name, и я хочу обрезать пробелы между словами в предложении, а также обрезать пробел после запятой.Я могу обрезать лишние пробелы, используя trim () в начале и в конце предложения.
[Я использую JavaScript для реализации моего кода]

name = '      Barack Hussein       Obama II is an     American politician who served       as the 44th President        of the United States from January 20,    2009,    to January 20, 2017.  

Ожидаемый результат:

name = ' Barack Hussein  Obama II is an American politician who served  as the 44th President of the United States from January 20, 2009, to January 20, 2017. 

Ответы [ 4 ]

0 голосов
/ 19 сентября 2018

По умолчанию string.replace в JavaScript заменит только первое найденное совпадающее значение, добавление / g будет означать, что все совпадающие значения будут заменены.

Модификатор g регулярного выражения (называемый глобальныммодификатор) в основном говорит движку не прекращать синтаксический анализ строки после первого совпадения.

var string = "      Barack Hussein       Obama II is an     American politician who served       as the 44th President        of the United States from January 20,    2009,    to January 20, 2017."
alert(string)
string = string.replace(/ +/g, ' ');
alert(string)

Список полезных модификаторов:

  • g - Глобальная замена.Замените все вхождения совпадающей строки в предоставленном тексте.
  • i - Замена без учета регистра.Замените все экземпляры совпадающей строки, игнорируя различия в регистре.
  • m - Многострочная замена.Регулярное выражение должно быть проверено на совпадения в нескольких строках.

Вы можете комбинировать модификаторы, такие как g и i, чтобы получить глобальный поиск без учета регистра.

0 голосов
/ 18 сентября 2018

В angularjs вы можете использовать trim() функцию

const nameStr = '      Barack Hussein       Obama II is an     American politician who served       as the 44th President        of the United States from January 20,    2009,    to January 20, 2017.';

console.log(nameStr.replace(/\s+/g, ' ').trim());
0 голосов
/ 18 сентября 2018

let msg = '      Barack Hussein       Obama II is an     American politician who served       as the 44th President        of the United States from January 20,    2009,    to January 20, 2017.';

console.log(msg.replace(/\s\s+/g, ' '));
0 голосов
/ 18 сентября 2018

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

const name1 = '      Barack Hussein       Obama II is an     American politician who served       as the 44th President        of the United States from January 20,    2009,    to January 20, 2017.';
console.log(
  name1.replace(/ +/g, ' ')
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...