Question

L'exigence d'un ASP.Net 2.0 projet, je travaille sur les limites d'un certain domaine à un maximum de 10 mots (pas de caractères).Je suis actuellement en utilisant un CustomValidator contrôle avec le ServerValidate méthode:

Protected Sub TenWordsTextBoxValidator_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles TenWordsTextBoxValidator.ServerValidate
    '' 10 words
    args.IsValid = args.Value.Split(" ").Length <= 10
End Sub

Quelqu'un aurait-il une plus approfondie/méthode précise de l'obtention d'un nombre de mots?

Était-ce utile?

La solution 2

Cette expression semble être génial de travailler:

"^(\b\S+\b\s*){0,10}$"

Mise à jour:le ci-dessus a eu quelques défauts donc j'ai fini par utiliser cette RegEx:

[\s\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\xBF]+

J' split() la chaîne sur cette regex et l'utilisation de la length le tableau qui en résulte pour obtenir le bon nombre de mots.

Autres conseils

Vous pouvez utiliser l'un des builtin validateurs avec une regex qui compte le nombre de mots.

Je suis un peu rouillé avec la regex alors allez facile sur moi:

(\b.*\b){0,10}

J'ai voté pour mharen réponse, et ont dit que c'était bien, mais depuis les commentaires sont masqués par défaut, laissez-moi vous expliquer à nouveau:

La raison pour laquelle vous souhaitez utiliser la regex validateur plutôt que le validateur personnalisé, c'est que la regex validateur permettra également de valider automatiquement les regex côté client à l'aide de javascript, si elle est disponible.Si ils passent de validation c'est pas une grosse affaire, mais à chaque fois que quelqu'un échoue à la validation côté client vous enregistrez votre serveur de faire une publication.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top