Estou tentando verificar se uma string tem espaço em branco . Encontrei esta função, mas não parece estar funcionando:
function hasWhiteSpace(s)
{
var reWhiteSpace = new RegExp("/^\s+$/");
// Check for white space
if (reWhiteSpace.test(s)) {
//alert("Please Check Your Fields For Spaces");
return false;
}
return true;
}
A propósito, adicionei citações a RegExp
.
Há algo de errado? Existe algo melhor que eu possa usar? Esperançosamente JQuery.
javascript
whitespace
Abdômen
fonte
fonte
Respostas:
Você pode simplesmente usar o método indexOf na string de entrada:
Ou você pode usar o método de teste, em um RegEx simples:
Isso também verificará outros caracteres de espaço em branco, como Tab.
fonte
Sua regex não corresponderá a nada, do jeito que está. Você definitivamente precisa remover as aspas - os
"/"
caracteres são suficientes./^\s+$/
está verificando se a string é TODOS os espaços em branco:^
corresponde ao início da string.\s+
significa pelo menos 1, possivelmente mais, espaços.$
corresponde ao final da string.Tente substituir o regex por
/\s/
(e sem aspas)fonte
Esta função verifica outros tipos de espaço em branco, não apenas espaço (tab, retorno de carro, etc.)
Se você não quiser usar o Lodash , aqui está uma
some
implementação simples com 2s
:Em seguida, basta substituir
some
porssome
.Para aqueles no Node, use:
fonte
Aqui está minha validação sugerida:
fonte
Uma abordagem simples que você pode adotar é comparar o comprimento da string original com o da string para substituir os espaços em branco por nada. Por exemplo:
fonte
Com adições ao idioma, é muito mais fácil, além disso, você pode aproveitar o retorno antecipado:
Eu não executei benchmark de desempenho, mas eles devem ser mais rápidos do que regex, mas para pequenos trechos de texto não haverá muita diferença de qualquer maneira.
fonte
Alguns outros postaram respostas. Existem alguns problemas óbvios, como ele retorna
false
quando o Regex passa, e os operadores^
e$
indicam início / fim, enquanto a pergunta está procurando tem (qualquer) espaço em branco, e não: contém apenas espaços em branco (que o regex está verificando).Além disso, o problema é apenas um erro de digitação.
Mude isso...
Para isso...
Ao usar uma regex dentro
RegExp()
, você deve fazer as duas coisas a seguir .../
colchetes inicial e final .\\s
no lugar de\s
etc.Demonstração de trabalho completa do código-fonte ....
fonte