UNPKG

tsdt

Version:

Transact-SQL Data Types validator for JavaScript

402 lines (336 loc) 9.49 kB
/** * @name Tsdt */ var tsdt = { /** * @name tsdt.isNumber * @param number */ isNumber: function( number ){ return /^\-?([0-9]+|Infinity)$/.test( number ); }, /** * @name tsdt.isNatural * @param number */ isNatural: function(number){ var n = parseInt(number, 10); return n >= 0; }, /** * @name tsdt.isTinyint * @param number * @url http://technet.microsoft.com/en-us/library/ms187745.aspx */ isTinyint: function( number ){ var min = 0; var max = 255; if( this.isNatural( number ) ){ number = parseInt( number, 10 ); if( number <= max && number >= min){ return true; } else{ return false; } } else{ return false; } }, /** * @name tsdt.isSmallint * @param number * @url http://technet.microsoft.com/en-us/library/ms187745.aspx */ isSmallint: function( number ){ var min = -32768; var max = 32767; if( this.isNatural( number ) ){ number = parseInt( number, 10 ); if( number <= max && number >= min){ return true; } else{ return false; } } else{ return false; } }, /** * @name tsdt.isInt * @param number * @url http://technet.microsoft.com/en-us/library/ms187745.aspx */ isInt: function (number) { var min = -2147483648; var max = 2147483647; if( this.isNumber( number ) ){ if( number <= max && number >= min ){ return true; } else{ return false; } } else{ return false; } }, /** * @name tsdt.isBigint * @param stringNumber * @url http://technet.microsoft.com/en-us/library/ms187745.aspx */ isBigint: function (stringNumber) { var min = '-9223372036854775808'; var max = '9223372036854775807'; // valid number if( !this.isNumber( stringNumber ) ){ return false; } // end four digits if( stringNumber.length == 19 ){ var four = stringNumber.substring( 19, 15 ); if( four > 5807 ){ return false } } // end four digits if( stringNumber.length == 20 && stringNumber.substring(0,1) == '-' ){ var four = stringNumber.substring( 20, 16 ); if( four > 5808 ){ return false } } // Identical value if( stringNumber === max || stringNumber === min ){ return true; } // Number regular expresion if(/^\-?\d{,19}$/.test(stringNumber)){ return true; } return true }, /** * @name tsdt.isDecimal * @param decimalNumber */ isDecimal: function( decimalNumber ){ return (String(decimalNumber).search(/^\d+(\.\d+)?$/) != -1); }, /** * @name tsdt.isEmpty * @param string */ isEmpty: function( string ){ return string === null || string === undefined ? true : /^[\s\xa0]*$/.test(string); }, /** * @name tsdt.isChar * @param string * @url http://technet.microsoft.com/en-us/library/ms176089.aspx */ isChar: function ( string ) { var min = 1; var max = 8000; if( this.isEmpty( string ) && typeof string === 'string' ){ return false; } else{ var length = string.split('').length; if( length <= max && length >= min ){ return true; } else{ return false; } } }, /** * @name tsdt.isVarchar * @param string * @url http://technet.microsoft.com/en-us/library/ms176089.aspx */ isVarchar: function (string) { return this.isChar( string ); }, /** * @name tsdt.isNchar * @param string * @url http://technet.microsoft.com/en-us/library/ms186939.aspx */ isNchar: function ( string ) { var min = 1; var max = 4000; if( this.isEmpty( string ) && typeof string === 'string' ){ return false; } else{ var length = string.split('').length; if( length <= max && length >= min ){ return true; } else{ return false; } } }, /** * @name tsdt.isNvarchar * @param string * @url http://technet.microsoft.com/en-us/library/ms186939.aspx */ isNvarchar: function (string) { return this.isNchar( string ); }, /** * @name tsdt.isText * @param string * @url http://technet.microsoft.com/en-us/library/ms187993.aspx */ isText: function ( string ) { var min = 1; var max = 2147483647; if( this.isEmpty( string ) && typeof string === 'string' ){ return false; } else{ var length = string.split('').length; if( length <= max && length >= min ){ return true; } else{ return false; } } }, /** * @name tsdt.isNtext * @param string * @url http://technet.microsoft.com/en-us/library/ms187993.aspx */ isNtext: function ( string ) { var min = 1; var max = 1073741823; if( this.isEmpty( string ) && typeof string === 'string' ){ return false; } else{ var length = string.split('').length; if( length <= max && length >= min ){ return true; } else{ return false; } } }, /** * @name tsdt.isBinary * @param string * @url http://technet.microsoft.com/en-us/library/ms188362.aspx */ isBinary: function ( string ) { var min = 1; var max = 8000; if( this.isEmpty( string ) && typeof string === 'string' ){ return false; } else{ var length = string.split('').length; if( length <= max && length >= min ){ return true; } else{ return false; } } }, /** * @name tsdt.isNvarchar * @param string * @url http://technet.microsoft.com/en-us/library/ms188362.aspx */ isVarbinary: function (string) { return this.isBinary( string ); }, /** * @name tsdt.isDate * @param stringDate * @url http://technet.microsoft.com/en-us/library/bb630352.aspx */ isDate: function (stringDate) { return /^\d{4}-\d{2}-\d{2}$/.test( stringDate ); }, /** * @name tsdt.idDatetime * @param stringDatetime * @url http://technet.microsoft.com/en-us/library/ms187819.aspx */ isDatetime: function (stringDatetime) { if( /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}$/.test( stringDatetime ) || /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}.\d{,3}$/.test( stringDatetime ) ){ return true; } else{ return false; } }, /** * @name tsdt.idDatetime2 * @param stringDatetime * @url http://technet.microsoft.com/en-us/library/bb677335.aspx */ isDatetime2: function (stringDatetime) { if( /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}$/.test( stringDatetime ) || /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}.\d{,7}$/.test( stringDatetime ) ){ return true; } else{ return false; } }, /** * @name tsdt.idDatetimeoffset * @param stringDatetime * @url http://technet.microsoft.com/en-us/library/bb630289.aspx */ isDatetimeoffset: function (stringDatetime) { return /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}\s\d{2}:\d{2}$/.test( stringDatetime ); }, /** * @name tsdt.isSmalldatetime * @param stringDatetime * @url http://technet.microsoft.com/en-us/library/ms182418.aspx */ isSmalldatetime: function (stringDatetime) { return /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}$/.test( stringDatetime ); }, /** * @name tsdt.isTime * @param stringTime * @url http://technet.microsoft.com/en-us/library/bb677243.aspx */ isTime: function (stringTime) { return /^\d{2}:\d{2}:\d{2}$/.test( stringTime ); }, /** * @name tsdt.isMoney * @param stringNumber * @url http://technet.microsoft.com/en-us/library/bb677243.aspx */ isMoney: function (stringNumber) { return /^\-?\d{,15}.\d{,4}$/.test( stringNumber ); }, /** * @name tsdt.isSmallmoney * @param stringNumber * @url http://technet.microsoft.com/en-us/library/bb677243.aspx */ isSmallmoney: function (stringNumber) { return /^\-?\d{,6}.\d{,4}$/.test( stringNumber ); } }; module.exports = tsdt;