Estou usando o plug-in de validação jQuery . Coisas boas! Desejo migrar minha solução ASP.NET existente para usar o jQuery em vez dos validadores do ASP.NET. Estou faltando um substituto para o validador de expressão regular . Eu quero ser capaz de fazer algo assim:
$("Textbox").rules("add", { regularExpression: "^[a-zA-Z'.\s]{1,40}$" })
Como adiciono uma regra personalizada para conseguir isso?
jquery
regex
jquery-validate
PeterFromCologne
fonte
fonte
Respostas:
Graças à resposta do redsquare, adicionei um método como este:
Agora, tudo o que você precisa fazer para validar contra qualquer regex é o seguinte:
Além disso, parece que existe um arquivo chamado additional-methods.js que contém o método "pattern", que pode ser um RegExp quando criado usando o método sem aspas.
Editar
A
pattern
função agora é a maneira preferida de fazer isso, criando o exemplo:http://bassistance.de/jquery-plugins/jquery-plugin-validation/
http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/additional-methods.js
fonte
Você pode usar o addMethod ()
por exemplo
bom artigo aqui https://web.archive.org/web/20130609222116/http://www.randallmorey.com/blog/2008/mar/16/extending-jquery-form-validation-plugin/
fonte
Eu tive alguns problemas para montar todas as peças para executar um validador de expressão regular do jQuery, mas consegui que funcionasse ... Aqui está um exemplo completo de trabalho. Ele usa o plug-in 'Validação', que pode ser encontrado no plug-in de validação jQuery
fonte
Não há razão para definir o regex como uma sequência.
e
é melhor assim, não?
fonte
var re = new RegExp(regexp);
na funçãoEstendendo a resposta de PeterTheNiceGuy um pouco:
Isso permitiria que você passasse um objeto regex para a regra.
A redefinição da
lastIndex
propriedade é necessária quando og
sinalizador-é definido noRegExp
objeto. Caso contrário, começaria a validar a partir da posição da última correspondência com essa regex, mesmo que a sequência de assunto seja diferente.Algumas outras idéias que tive foram: permitir o uso de matrizes de regex e outra regra para a negação de regex:
Mas implementá-las talvez fosse demais.
fonte
Conforme mencionado na documentação addMethod :
Observe: Embora a tentação seja grande de adicionar um método regex que verifique seu parâmetro em relação ao valor, é muito mais fácil encapsular essas expressões regulares dentro de seu próprio método. Se você precisar de muitas expressões ligeiramente diferentes, tente extrair um parâmetro comum. Uma biblioteca de expressões regulares: http://regexlib.com/DisplayPatterns.aspx
Então, sim, você deve adicionar um método para cada expressão regular. A sobrecarga é mínima, enquanto permite que você dê um nome à regex (que não deve ser subestimado), uma mensagem padrão (útil) e a capacidade de reutilizá-la em vários locais, sem duplicar a própria regex repetidamente.
fonte
Eu consegui funcionar assim:
Verifique se o regex está entre
/
:-)fonte
Você pode usar
pattern
definido noadditional-methods.js
arquivo. Observe que esse arquivo method -js adicionais deve ser incluído após o jQuery Validar dependência, e você pode simplesmente usarfonte
Este é um código de trabalho.
fonte
usamos principalmente a notação de marcação do plug-in de validação de jquery e as amostras postadas não funcionaram para nós, quando bandeiras estão presentes no regex, por exemplo
portanto, usamos o seguinte trecho
É claro que agora é possível combinar esse código, com um dos itens acima, para também permitir a passagem de objetos RegExp para o plug-in, mas como não precisamos dele, deixamos esse exercício para o leitor ;-).
PS: também há um plug-in incluído, https://github.com/jzaefferer/jquery-validation/blob/master/src/additional/pattern.js
fonte
Isso funcionou para mim, sendo uma das regras de validação:
Espero que ajude
fonte