31 lines
1.2 KiB
JavaScript
31 lines
1.2 KiB
JavaScript
/**
|
|
* Makes youth teams identifiable while retaining the team name supplied by
|
|
* click-TT. Age groups occur in a few forms, for example "Jugend 13",
|
|
* "Jugend 13 1. Kreisklasse", and "J13". Some imports provide the age
|
|
* only for the whole fixture, therefore `competitionAgeGroup` is considered
|
|
* as a fallback.
|
|
*/
|
|
export function youthTeamCode(teamAgeGroup, teamName = '', competitionAgeGroup = '') {
|
|
const ageGroup = [teamAgeGroup, competitionAgeGroup]
|
|
.map(value => String(value || '').trim())
|
|
.filter(Boolean)
|
|
.join(' ')
|
|
const name = String(teamName || '').trim()
|
|
const codeMatch = `${ageGroup} ${name}`.match(/\b(?:jugend\s*|j\s*\(?)(\d{1,2})\b/i)
|
|
|
|
if (codeMatch) return `J${codeMatch[1]}`
|
|
if (/\bjugend\b/i.test(ageGroup) || /\bjugend\b/i.test(name)) return 'J'
|
|
return ''
|
|
}
|
|
|
|
export function formatTeamDisplayName(teamName, teamAgeGroup, competitionAgeGroup = '') {
|
|
const rawName = String(teamName || '').trim()
|
|
if (!rawName) return ''
|
|
|
|
const youthCode = youthTeamCode(teamAgeGroup, rawName, competitionAgeGroup)
|
|
const name = youthCode
|
|
? rawName.replace(/\s*\(J\d{1,2}\)\s*$/i, '').trim()
|
|
: rawName
|
|
return youthCode ? `(${youthCode}) ${name}` : name
|
|
}
|