regex.go (830B)
1 package domain 2 3 import "regexp" 4 5 const ( 6 noTrailingOrLeadingSpacePattern = `\S(.*\S)?` 7 validSortNameCharsPattern = `[a-zA-ZÀ-ÖØ-öø-ÿ0-9 ',.\-&!\(\)]` 8 musicBrainzIDPattern = `[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}` 9 ) 10 11 // Go regexes (server-side validation) 12 var ( 13 NoTrailingOrLeadingSpaceRegex = regexp.MustCompile(`^` + noTrailingOrLeadingSpacePattern + `$`) 14 IsValidSortNameRegex = regexp.MustCompile(`^` + validSortNameCharsPattern + `+$`) 15 IsValidMusicBrainzIDRegex = regexp.MustCompile(`^` + musicBrainzIDPattern + `$`) 16 ) 17 18 // HTML pattern (client-side validation with lookahead) 19 const IsValidSortNamePattern = `(?=^` + noTrailingOrLeadingSpacePattern + `$)` + validSortNameCharsPattern + `+$` 20 const IsValidMusicBrainzIDPattern = musicBrainzIDPattern