Eu estou tentando criar um exp regular para parar o usuário inserir caracteres especiais em qualquer lugar na cadeia de caracteres, mas números e sublinhados dentro da seqüência de caracteres, exceto no ponto de partida.
cenários
abhi_3123123 valid
abhi___ASDFAS valid
3425_asdfasdf invalid
_asdfasdf invalid
sometext(having any spcl character at any place) invalid
apenas sublinhado deve ser permitido apenas entre não no início e no final
código atualizado
Eu estou chamando este código no evento textchange da minha caixa de texto
string regEx = @"^[a-zA-Z][a-zA-Z0-9_]*(?<!_)$";
if (System.Text.RegularExpressions.Regex.IsMatch(txtFunctionName.Text, regEx))
{
//no error
}
else
{
// show error
}
este código está mostrando erro
Respostas:
1 para resposta № 1Supondo que você queira apenas permitir letras ASCII, dígitos e sublinhados, use
^[a-zA-Z]w*(?<!_)$
em Java ou
^[a-zA-Z][a-zA-Z0-9_]*(?<!_)$
na rede.
Explicação:
^ # Start of string
[a-zA-Z] # First character: ASCII letter
[a-zA-Z0-9_]* # Following characters: ASCII letter, digit or underscore
(?<!_) # Assert that last character isn"t an underscore
$ # End of string
Veja em ação: