12345678910111213141516171819202122232425262728 |
- function oct2Decimal(oct) {
- oct = parseInt(oct);
- var i = 0,
- bit,
- sum = 0;
- do {
- bit = oct % 10;
- sum += bit * Math.pow(8, i++);
- } while ( (oct = ~~(oct / 10)) !== 0 )
- return sum;
- }
- function decode(string) {
- string = string.trim();
- return string
- .replace(/^\"(.+)\"$/, '$1')
- // x >= 128 && x <= 255
- .replace(/(\\\d{3})+/g, function (_) {
- var octArray = _.split('\\').slice(1);
- var decArray = octArray.map(function(oct) {
- return oct2Decimal(oct);
- });
- return new Buffer(decArray).toString('utf8');
- });
- }
- module.exports = decode;
|