Which regular expression can I use to remove double spaces in Javascript or PHP? [duplicate]

9

Which regular expression can I use to remove excess white space? I mean, leave them with the amount of standard spaces.

Example

From:

$string = 'Estou no    Stack   Overflow em Português   ';

To:

$string = 'Estou no Stack Overflow em Português';

I would like examples in PHP and Javascript.

    
asked by anonymous 21.08.2015 / 18:14

3 answers

15

If you consider breaking lines, tabs, and more like spaces use \s , otherwise you can use ( ) - as in the example. p>

PHP

$str = preg_replace('/( )+/', ' ', "stack    overflow");    

Javascript

var str = "stack    overflow".replace(/( )+/g, ' ');

About regex:

( ) captures empty spaces. + indicates that it will fetch all subsequent (void) statements.

    
21.08.2015 / 18:17
8

Some types of " writeSpace "

" " espaço simples - represente o " " espaço
\n - representa a quebra de linha
\r - representa o retorno de carro
\t - representa um tab
\v - representa um tab vertical (nunca vi, nem usei)
\f - representa o avanço de pagina
\s - engloba todos os demais

Some REGEX

/ {2,}/      - captura apenas dois ou mais espaços
/\n{2,}/     - captura apenas linhas duplas
/(\r\n){2,}/ - captura apenas linhas duplas, que possuam retorno de carro (alguns editores poem por padrão '\r\n' ao pressionar enter)

Your situation

PHP

$str = preg_replace('/( ){2,}/', '$1', $str);

JavaScript

str = str.replace(/( ){2,}/g, '$1');

Explanation

( )  - captura um espaço simples e gera um grupo
{2,} - quantifica um no minimo dois ao infinito
$1   - recupera o grupo
    
21.08.2015 / 18:39
2

That way it solves:

Javascript:

var text = 'Estou no    Stack   Overflow em Português   ';
    text = text.replace(/\s+/g, " ");

PHP:

$text = 'Estou no    Stack   Overflow em Português   ';
$text = preg_replace('/\s+/', " ",$text);
    
21.08.2015 / 19:33