2012-12-02 3 views
0

J'ai une fonction d'accepter chaînes comme

VECJ`880326`AB1 
ROPL`951201`HD9 
ABC`680504`XXX 

Mais je veux aussi accepter

V&CJ`880326`AB1 
RO%L`951201`HD9 
ABC$`680504`XXX 

Comment puis-je changer la fonction:

Function IsValid(ByVal strIn As String) As Boolean 
    Return Regex.IsMatch(strIn, ("^[a-zA-Z]{3,4}(\d{6})((\D|\d){3})?$")) 

Répondre

2

Eh bien, vous avez déjà character class. Ajoutez simplement les caractères requis:

"^[a-zA-Z$%&]{3,4}(\d{6})((\D|\d){3})?$" 

Aussi, savez-vous que vous accepter des 3 caractères à la fin? \d est un caractère quelconque et \D est un autre caractère. Si vous vouliez accepter uniquement des lettres et des chiffres, vous pouvez utiliser [a-zA-Z0-9]{3} au lieu de (\D|\d){3}.