pinyin-tone-parse

Parse Pinyin tone numbers.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
pinyin-tone-parse
010.1.14 years ago4 years agoMinified + gzip package size for pinyin-tone-parse in KB

Readme

Pinyin Tone Parse
Build Status Coverage Status code style: prettier License: MIT
Easily parse pinyin tone numbers.

Installation

npm install pinyin-tone-parse

Usage

const toneParse = require('pinyin-tone-parse')

toneParse('Ni3 hao3 ma5?')
// [[ 'Ni', 3 ], ' ', [ 'hao', 3 ], ' ',[ 'ma', 5 ], '?']

// Composite words
toneParse('Zhong1guo2ren2 hai2shi5 e2guo2ren2?')
// [['Zhong', 1], ['guo', 2], ['ren', 2], ' ', ['hai', 2], ['shi', 5], ' ', ['e', 2], ['guo', 2], ['ren', 2], '?']

Options

| Option | Default value | Description | | -------------- | :-----------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | allowUntoned | true | Set to false to throw MissingToneNumberError on each untoned word. Helps manually validate input. | | allowAnyChar | false | By default throws UnrecognizedCharacterError on any character that is not in the A-Za-z0-9.。,:;?!-– set. Set to true to omit this error. Correct parsing results in this case are not guaranteed. |
// Check for untoned words
toneParse('Ni3 hao3 ma?')
// [[ 'Ni', 3 ], ' ', [ 'hao', 3 ], ' ', [ 'ma', 5 ], '?']
toneParse('Ni3 hao3 ma?', { allowUntoned: false }) // throws MissingToneNumberError for word "ma"

// Allow any characters
toneParse('Ni3 & wo3.') // throws UnrecognizedCharacterError for `&` character
toneParse('Ni3 & wo3.', { allowAnyChar: true })
// [[ 'Ni', 3 ], ' ', '&', ' ', [ 'wo', 3 ], '.']

Tests

npm test

License

MIT.