chinese-numbers-converter
Advanced tools
Comparing version 2.0.1 to 2.0.2
@@ -76,6 +76,4 @@ /** | ||
'萬': '*10000', | ||
'萬': '*10000', | ||
'万': '*10000', | ||
'億': '*100000000', | ||
'億': '*100000000', | ||
'亿': '*100000000', | ||
@@ -105,3 +103,3 @@ }; | ||
if (str === null || str === undefined || str === '') { | ||
throw 'Empty strings cannot be converted.'; | ||
throw new Error('Empty strings cannot be converted.'); | ||
} | ||
@@ -123,3 +121,3 @@ | ||
} | ||
// Now parse the actual Chinese, character by character: | ||
@@ -163,3 +161,3 @@ var len = str.length; | ||
var numbersSoFar = 0; | ||
pairs.forEach(function (pair) { | ||
@@ -190,3 +188,3 @@ numbersSoFar += pair[0] * pair[1]; | ||
// If number ends in 1-9, e.g. 二十二, we have one number left behind - | ||
// If number ends in 1-9, e.g. 二十二, we have one number left behind - | ||
// add it too and multiply by 1: | ||
@@ -221,3 +219,3 @@ if (currentPair.length === 1) { | ||
* @returns {boolean} True if the `character` is a Chinese or Arabic number | ||
* or a character like "comma" and "space", which should not delimit two | ||
* or a character like "comma" and "space", which should not delimit two | ||
* numbers; rather, they mean that the number may continue. E.g. "6,000" or | ||
@@ -229,3 +227,3 @@ * "6 000". | ||
if (character === null || character === undefined || character.length !== 1) { | ||
throw 'isNumberOrSpace() must receive exactly one character for checking.'; | ||
throw new Error('isNumberOrSpace() must receive exactly one character for checking.'); | ||
} | ||
@@ -254,3 +252,3 @@ | ||
if (character === null || character === undefined || character.toString().length !== 1) { | ||
throw 'Function isChineseNumber expects exactly one character.'; | ||
throw new Error('Function isChineseNumber expects exactly one character.'); | ||
} | ||
@@ -261,3 +259,2 @@ | ||
/** | ||
@@ -270,3 +267,3 @@ * Checks whether a character is an Arabic number [0-9] and not a Chinese | ||
if (character === null || character === undefined || character.toString().length !== 1) { | ||
throw 'Function isArabicNumber expects exactly one character.'; | ||
throw new Error('Function isArabicNumber expects exactly one character.'); | ||
} | ||
@@ -285,3 +282,3 @@ | ||
if (character === null || character === undefined || character.toString().length !== 1) { | ||
throw 'Function isCommaOrSpace expects exactly one character.'; | ||
throw new Error('Function isCommaOrSpace expects exactly one character.'); | ||
} | ||
@@ -327,3 +324,3 @@ | ||
// Loop over each character in the string and: | ||
// Loop over each character in the string and: | ||
// - if it's a normal character, just keep looping and adding characters to | ||
@@ -334,2 +331,3 @@ // the translated string. | ||
// Arabic number and place it back into the translated string. | ||
var clearChineseNumber; | ||
this.source.split('').forEach(function (character) { | ||
@@ -348,3 +346,3 @@ if (ChineseNumber.isNumberOrSpace(character)) { | ||
// Add a space, otherwise 1000萬800呎 will become 10000000800呎 | ||
translated += ' '; | ||
translated += ' '; | ||
} else { | ||
@@ -376,5 +374,5 @@ // If `minimumCharactersInNumber` is set, do not translate short | ||
// Cannot be false, otherwise `if (previousCharacterIsNumber) {` | ||
// Cannot be false, otherwise `if (previousCharacterIsNumber) {` | ||
// below will fail for numbers that end with space: | ||
previousCharacterIsNumber = true; | ||
previousCharacterIsNumber = true; | ||
previousCharacterIsChineseNumber = false; | ||
@@ -393,4 +391,4 @@ } else { | ||
clearChineseNumber = chineseNumber.replace(/[,\s]/g, ''); | ||
if (clearChineseNumber === '' && chineseNumber.length === 1) { | ||
// If the 'number' we assembled is actually something like comma, | ||
if (clearChineseNumber === '' && chineseNumber.length === 1) { | ||
// If the 'number' we assembled is actually something like comma, | ||
// space, or multiple commas and spaces, and occurs at the beginning: | ||
@@ -441,7 +439,5 @@ translated += chineseNumber; | ||
characters.forEach(function (character, i) { | ||
if (i === 0) { | ||
// For the first character, we don't have a previous character yet, so | ||
// For the first character, we don't have a previous character yet, so | ||
// just skip it: | ||
@@ -475,4 +471,3 @@ result += character; | ||
result += character + missingMultiplier; | ||
} | ||
else { | ||
} else { | ||
result += character; | ||
@@ -479,0 +474,0 @@ } |
{ | ||
"name": "chinese-numbers-converter", | ||
"version": "2.0.1", | ||
"version": "2.0.2", | ||
"description": "Converts Chinese numerals in a string into Arabic numerals.", | ||
@@ -5,0 +5,0 @@ "main": "chinese-numbers.js", |
20030
397