parse: function(raw) { if (_isNumber(raw) || _isUndefined(raw) || _isNull(raw)) return raw; // replace percent sign, n-dash & m-dash var number = raw.replace("%", "").replace('–', '-').replace('—', '-'); // normalize number if (format[0] != '-') { // remove kilo seperator number = number.replace(new RegExp((format[0] == '.' ? '\\.' : format[0]), 'g'), ''); } if (format[1] != '.') { // replace decimal char w/ point number = number.replace(format[1], '.'); } if (isNaN(number) || number === "") { if (!naStrings[number.toLowerCase()] && number !== "") errors++; return raw; } return Number(number); },
isValid: function(val) { return val === "" || naStrings[String(val).toLowerCase()] || _isNumber(type.parse(val)); },
}).map(function(v) { if (_isBoolean(v)) return v ? 'yes' : 'no'; if (_isDate(v)) return datefmt(v); if (_isNumber(v)) return ''+v; return String(v); });