numerizer
Advanced tools
Comparing version 0.0.2 to 0.0.3
@@ -21,8 +21,8 @@ ;(function () { | ||
'three': 3, | ||
'four(\\W|$)': 4, | ||
'\\bfour\\b': 4, | ||
'five': 5, | ||
'six(\\W|$)': 6, | ||
'seven(\\W|$)': 7, | ||
'eight(\\W|$)': 8, | ||
'nine(\\W|$)': 9, | ||
'\\bsix\\b': 6, | ||
'\\bseven\\b': 7, | ||
'\\beight\\b': 8, | ||
'\\bnine\\b': 9, | ||
'\\sa[\\s^$]': 1 | ||
@@ -87,3 +87,3 @@ }; | ||
})); | ||
} | ||
} | ||
return text; | ||
@@ -113,7 +113,7 @@ } | ||
var f_reg = new RegExp(f, 'ig'); | ||
text = text.replace(f_reg, '<frac>' + FRACTIONS[f]); | ||
text = text.replace(f_reg, '<frac>' + FRACTIONS[f]); | ||
} | ||
text = fractition(text); | ||
for (var tp in TEN_PREFIXES) { | ||
var tp_reg = new RegExp('(?:'+tp+') *<num>(\\d(?=[^\\d]|$))*', 'ig'); | ||
var tp_reg = new RegExp('(?:'+tp+') *<num>(\\d(?=[^\\d]|$))*', 'ig'); | ||
text = text.replace(tp_reg, function (match, num, contents, offset, s) { | ||
@@ -126,3 +126,3 @@ return '<num>' + (TEN_PREFIXES[tp] + parseFloat(num)); | ||
var tps_reg = new RegExp(tps, 'ig'); | ||
text = text.replace(tps_reg, '<num>' + TEN_PREFIXES[tps]); | ||
text = text.replace(tps_reg, '<num>' + TEN_PREFIXES[tps]); | ||
} | ||
@@ -129,0 +129,0 @@ |
{ | ||
"name": "numerizer", | ||
"version": "0.0.2", | ||
"version": "0.0.3", | ||
"description": "Parse numbers in natural language from strings", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
var assert = require('assert'); | ||
describe("Numerizer", function() { | ||
describe("Numerizer", function () { | ||
var numerizer = require('../'); | ||
@@ -15,10 +15,10 @@ | ||
it('should parse numbers above ten', function (done) { | ||
assert.equal(parseInt(numerizer('forty two'), 10), 42); | ||
assert.equal(parseInt(numerizer('fifty nine'), 10), 59); | ||
done(); | ||
assert.equal(parseInt(numerizer('forty two'), 10), 42); | ||
assert.equal(parseInt(numerizer('fifty nine'), 10), 59); | ||
done(); | ||
}); | ||
it('should parse fractions', function (done) { | ||
assert.equal(parseFloat(numerizer('two and a half')), 2.5); | ||
assert.equal(parseFloat(numerizer('three quarters')), 0.75); | ||
done(); | ||
assert.equal(parseFloat(numerizer('two and a half')), 2.5); | ||
assert.equal(parseFloat(numerizer('three quarters')), 0.75); | ||
done(); | ||
}); | ||
@@ -43,3 +43,12 @@ | ||
}); | ||
it('should parse numbers within a string', function (done) { | ||
assert.equal(numerizer('thirty six days from now'), '36 days from now'); | ||
assert.equal(numerizer('forty four bottles of beer'), '44 bottles of beer'); | ||
assert.equal(numerizer('sixty six bottles of beer'), '66 bottles of beer'); | ||
assert.equal(numerizer('seventy seven bottles of beer'), '77 bottles of beer'); | ||
assert.equal(numerizer('eighty eight bottles of beer'), '88 bottles of beer'); | ||
assert.equal(numerizer('ninety nine bottles of beer'), '99 bottles of beer'); | ||
done(); | ||
}); | ||
}); | ||
}); |
7822
180