Skip to content

Commit 26f86cd

Browse files
Add character count support for countType: "words" using Intl.Segmenter
1 parent e886036 commit 26f86cd

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

packages/nhsuk-frontend/src/nhsuk/components/character-count/character-count.mjs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,12 @@ export class CharacterCount extends ConfigurableComponent {
477477
return segments.length
478478
},
479479
words(text) {
480-
return text.split(this.separator).filter(Boolean).length
480+
if (!this.segmenter || 'maxwords' in this.config) {
481+
return text.split(this.separator).filter(Boolean).length
482+
}
483+
484+
const segments = Array.from(this.segmenter.segment(text))
485+
return segments.filter((segment) => segment.isWordLike).length
481486
}
482487
})
483488

0 commit comments

Comments
 (0)