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

Criando Filtro para quantidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Boa noite! Apos criar o filtro para quantidade a ser digitada no teclado, ele não está me dando a opção para digiagar mais. O cursor fica piscado e limitado apena ao compro selecionado. Segeu o códio passo a passo da aula.

export default function CampoInteiro ({valor, acao}){

const atualiza = (novoValor, acaoRetorna) => {
    const verificaInteiro = novoValor.match(/ˆ[0-9]*$/);
    if(!verificaInteiro) return;
    const removeZeroEsquerda = novoValor.replace(/ˆ(0)(.+)/,'$2');
    acaoRetorna( removeZeroEsquerda );
}

const numeroEmTexto  = String(valor);
return <TextInput
    keyboardType="number-pad"
    selectTextOnFocus
    onChangeText={(novoValor) =>  {atualiza(novoValor, acao)}}
    value={numeroEmTexto}
/>

}

2 respostas
solução!

Olá, Rosivaldo! Como vai?

Achei algo estranho no seu código, o problema está no caractere utilizado para representar o início da string. O caractere correto é o ^, mas no código que você compartilhou está sendo utilizado um caractere parecido, mas não o mesmo.

Para corrigir esse problema, você precisa substituir todos os caracteres ˆ pelo caractere ^ na expressão regular. Veja a diferença:

Seu código:

Variável verificaInteiro:

const verificaInteiro = novoValor.match(/ˆ[0-9]*$/);

O da aula:

const verificaInteiro = novoValor.match(/^[0-9]*$/);

Variável removeZeroEsquerda:

Seu código:

const removeZeroEsquerda = novoValor.replace(/ˆ(0)(.+)/,'$2');

O da aula:

const removeZeroEsquerda = novoValor.replace(/^(0)(.+)/, '$2');

Espero ter ajudado! Qualquer coisa manda aqui de novo.

Muito obrigado. Realmente era o caracter