From c60e0a2e1ca96645fc7e79bc582c64accb6ff4b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=9F=E9=85=8C=20=E9=B5=AC=E5=85=84?= Date: Thu, 20 Oct 2016 10:06:40 +0800 Subject: [PATCH] Added random string --- object.js | 10 ++++++++-- random.js | 22 ++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/object.js b/object.js index ea202f8..ca68d5a 100644 --- a/object.js +++ b/object.js @@ -11,7 +11,7 @@ var cloneObj = function( o ) return clone; } - if ( o instanceof Array ) + else if ( o instanceof Array ) { clone = []; @@ -23,7 +23,13 @@ var cloneObj = function( o ) return clone; } - if ( o instanceof Object ) + else if ( o instanceof RegExp ) + { + clone = new RegExp( o ); + return clone; + } + + else if ( o instanceof Object ) { for ( var p in o ) { diff --git a/random.js b/random.js index 8fdcfc5..9b3b582 100644 --- a/random.js +++ b/random.js @@ -1,3 +1,8 @@ +"use strict"; + +const charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; +const charLen = charset.length; + var lut = []; for ( var i=0; i<256; i++ ) { lut[i] = (i<16?'0':'')+(i).toString(16); } module.exports = { @@ -12,4 +17,21 @@ module.exports = { lut[d2&0x3f|0x80]+lut[d2>>8&0xff]+'-'+lut[d2>>16&0xff]+lut[d2>>24&0xff]+ lut[d3&0xff]+lut[d3>>8&0xff]+lut[d3>>16&0xff]+lut[d3>>24&0xff]; } + , randstr: function( len ) + { + if( !len ) len = 16; + + var str = ""; + for( var i = 0; i < len; i ++ ) + { + var d0 = Math.random()*0xffffffff|0; + + str += charset[ ( d0 & 0xff ) % charLen ]; + if( ++ i < len ) str += charset[ ( d0 >> 8 & 0xff ) % charLen ]; + if( ++ i < len ) str += charset[ ( d0 >> 16 & 0xff ) % charLen ]; + if( ++ i < len ) str += charset[ ( d0 >> 24 & 0xff ) % charLen ]; + } + + return str; + } };