Postagem em destaque
- Gerar link
- X
- Outros aplicativos
BlackTDN :: Validando Expressões Regulares em ADVPL usando PowerShell
Para que o "script" possa ser executado faz-se necessário autoriza-lo através do Windows® PowerShell® , sendo assim, execute o Windows® PowerShell® e digite o seguinte comando: get-help about_signing. Esse comando irá listar as opções de "Diretivas de Assinatura e de Execução" de "Script", leia-as atentamente. Mas se quiser pular esse passo (eu não recomendo)digite o seguinte comando no Windows® PowerShell® : Set-ExecutionPolicy Unrestricted. Esse comando fará que qualquer "Script" seja executado em sua máquina (mas atente para os ítens de segurança listados à partir do comando get-help about_signing). |
/*/ Funcao: PSRegEx Autor: Marinaldo de Jesus Data: 03/04/2012 Uso: Exemplo de Uso de RegExp via PowerShell /*/ Static Function PSRegEx( cString , cPattern ) Local cMatch := "" Local cPSScript := "" Local cPSOutPath := GetTempPath() Local cPSOutFile := CriaTrab(NIL,.F.) Local cPSOutPathFile := ( cPSOutPath + cPSOutFile+".ini" ) Local cPSFileScript := cPSOutFile Local cPSScriptPathFile := ( cPSOutPath + cPSFileScript+".ps1" ) Local oTFIni Local lMatch := .F. BEGIN SEQUENCE While File( cPSOutPathFile ) .or. File( cPSScriptPathFile ) cPSOutFile := CriaTrab(NIL,.F.) cPSOutPathFile := ( cPSOutPath + cPSOutFile+".ini" ) cPSFileScript := cPSOutFile cPSScriptPathFile := ( cPSOutPath + cPSFileScript+".ps1" ) End While cPSScript += '"' cPSScript += '[PS_REGEX]' cPSScript += '`r`n' cPSScript += 'match=' cPSScript += '"' cPSScript += '+' cPSScript += '([regex]::ismatch("'+cString+'","'+cPattern+'")).ToString() cPSScript += ' | ' cPSScript += 'Out-File -Encoding "ASCII" "' + cPSOutPathFile + '"' MemoWrite( cPSScriptPathFile , cPSScript ) IF !File( cPSScriptPathFile ) BREAK EndIF WaitRun( "POWERSHELL " + cPSScriptPathFile ) IF !File( cPSOutPathFile ) BREAK EndIF oTFIni := TFINI():New( cPSOutPathFile ) cMatch := oTFIni:GetPropertyValue("PS_REGEX","match") DEFAULT cMatch := "FALSE" cMatch := Upper( cMatch ) lMatch := ( cMatch == "TRUE" ) oTFIni := FreeObj( oTFIni ) END SEQUENCE IF File( cPSScriptPathFile ) fErase( cPSScriptPathFile ) EndIF IF File( cPSOutPathFile ) fErase( cPSOutPathFile ) EndIF Return( lMatch ) |
RegExp: [SoapRegExp][1.1][mail@blacktdn.com.br][^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+.([a-zA-Z]{2,4})$][.T.] RegExp: [SoapRegExp][1.1][mail_blacktdn.com.br][^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+.([a-zA-Z]{2,4})$][.F.] RegExp: [SoapRegExp][1.1][111.111.111-11][(^\d{3}\.?\d{3}\.?\d{3}-\d{2})|(^\d{3}\d{3}\d{3}\d{2})$][.T.] RegExp: [SoapRegExp][1.1][111111111-11][(^\d{3}\.?\d{3}\.?\d{3}-\d{2})|(^\d{3}\d{3}\d{3}\d{2})$][.T.] RegExp: [SoapRegExp][1.1][1a1.111.111-11][(^\d{3}\.?\d{3}\.?\d{3}-\d{2})|(^\d{3}\d{3}\d{3}\d{2})$][.F.] RegExp: [SoapRegExp][1.1][53.113.791/0001-22][^(\d{2}.?\d{3}.?\d{3}/?\d{4}-?\d{2})$][.T.] RegExp: [SoapRegExp][1.1][53113791/0001-22][^(\d{2}.?\d{3}.?\d{3}/?\d{4}-?\d{2})$][.T.] RegExp: [SoapRegExp][1.1][53113791000122][^(\d{2}.?\d{3}.?\d{3}/?\d{4}-?\d{2})$][.T.] RegExp: [SoapRegExp][1.1][123PWDRegEx436][^(.*(([^a-z1-9]+.*\d+)|(\d+.*[^a-z1-9]+)).*)$][.T.] RegExp: [SoapRegExp][1.1][@#PWDRegEx#@][^(.*(([^a-z1-9]+.*\d+)|(\d+.*[^a-z1-9]+)).*)$][.F.] |
- Protheus :: Executando aplicações externas no "Server" utilizando WaitRunSrv
- Protheus :: Rompendo Limites e Barreiras (open your mind)
- Protheus :: Convertendo arquivos PDF em JPEG usando WaitRunSrv ; ou
- PDFCreator :: Gerando Marca D´agua
2) Leia “Password Strength Validation with Regular Expressions” para entender como validar senhas com expressões complexas.
[]s
иαldσ dj
- Gerar link
- X
- Outros aplicativos
Comentários
Postagens mais visitadas
BlackTDN :: RLeg ~ Desvendando a Função ParamBox
- Gerar link
- X
- Outros aplicativos
Protheus :: Chamando Funções do Menu Diretamente e sem a Necessidade de Login
- Gerar link
- X
- Outros aplicativos
Opa obrigado naldo... farei meus testes... eu quase nao uso power shell em meu cotidiano, mas essa solução me pareceu muito mais interessante do que acessar um webservice externo.... o jeito é treinar...
ResponderExcluirIsrael Neves.
Israel,
ResponderExcluirObviamente que são soluções paliativas. Dada a minha criatividade poderia implementa-las de n formas.
Considerando que a Totvs usa a biblioteca QT da Nokia para desenvolver o Client a implementação de RegEx seria muito fácil se ela exportasse a classe QRegExp (http://qt-project.org/doc/qt-4.8/QRegExp.html) do QT para uso no Protheus.
Parabéns!
ResponderExcluirtaí um bom site para testar suas criações..
http://myregexp.com/signedJar.html