Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Pegar apenas espaços em branco

Olá, estou tentando pegar todos os espaços em branco entre uma palavra e outra, EXCETO os espaços em branco no início.

Cheguei a seguinte regex : [^\s+](\s{1,}) , mas ela pega a ultima letra sempre.

exemplo de alvo: (digitar alguns espaços antes) teste teste teste

Alguma sugestão seguida de uma explicação?

Valeu.

4 respostas
solução!

Não sei se entendi exatamente oque você quer, mas seria algo assim?

var x = " teste teste teste";
var r = new RegExp(/\b(\s)\b/g);
var y = null;

while(y = r.exec(x)){
    console.log(y)
}

no caso, o \b no inicio e no fim é para não considerar nenhum carácter diferente de [A-Za-z0-9_] no incio e no fim da string, depois é agrupado todos os espaços (\s) que estão dentro.

Espero que tenha ajudado

É isso mesmo Alex!! Você pode me explicar porque a minha regex está pegando letras sendo que ela só possui \s?

Muito Obrigado!

No caso, você está buscando qualquer carácter que não é um espaço

[^\s+]

Seguido de um espaço

(\s{1,})

Então você acaba tendo essa combinação mas considerando o index do primeiro carácter (que não é o espaço)

Abraço

eu achei que funcionaria da seguinte forma: Encontre um possível espaço no início e ignore-o. Não sabia que ele ia dar o match em outra ocorrência diferente do espaço.

Alex, muito obrigado pelos esclarecimentos!!