`

关于纯数字的字符串按ASCII压缩

 
阅读更多

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <SCRIPT LANGUAGE="JavaScript">
	
	//压缩前字符串
	var _former = "23475439057468947233475094759027569027589720954764597063576037856975607458673087620720457634895768495764895638963470634706945769485762";
	//var _former = "2330248";
 
	/**
	 * 压缩算法,分别取出两个数字转换成ASCII码,如果字符个数为奇数时,返回最后一位的负数值
	 * @param _former  : 准备压缩的字符串
	 * @return _arr :	  压缩后的数组
	 * @auth  方小洲
	 */
	function _doZip(_former){
		
		//定义数组、数组长度
		var _arr = [] ;
		var _len = 0 ;

		
		//循环取出两个数字
		for(var i = 0 ; i < _former.length - 1 ; i=i+2){ 
			var _tmp = String.fromCharCode(_former.substring(i,i+2)); 
			_arr[_len++] = _tmp ; 
		}

		//如果字符个数为奇数时,返回最后一位的负数值
		if(_former.length  % 2 == 1){
			_arr[_len++] = "-"+_former.charAt(_former.length-1); 
		}
 
		return _arr ;
	}
	
	
	/**
	 * 压缩算法,分别取出两个数字转换成ASCII码,如果字符个数为奇数时,返回最后一位的负数值
	 * @param  _arr  : 准备解压的数组
	 * @return _latter : 解压后的字符串
	 * @auth  方小洲
	 */
	function _doUnZip(_arr){

		//定义数组、数组长度
		var _brr = [] ;
		var _len = 0 ;
		
		//循环取出每个字符,把ASCII转换成数字
		for(var i = 0 ; i < _arr.length -1 ; i++){
			var _tmp = _arr[i].charCodeAt(0);  
			if(parseInt(_tmp) < 10 ){
				_tmp = "0" + _tmp ;
			}
			_brr[_len++] = _tmp ;
		}


		//取出数组的最后一个元素
		var _theLast = _arr[_arr.length - 1];

		//如果长度大于1,表示为负数,返回其绝对值就可以了
		if(_theLast.length > 1)	{
			var _tmp = parseInt(_theLast); 
			_tmp = Math.abs(_tmp);
			_brr[_len++] = _tmp ;
		}else {
		//表示正常压缩,按原来的解压
			var _tmp = _theLast.charCodeAt(0);  
			if(parseInt(_tmp) < 10 ){
				_tmp = "0" + _tmp ;
			}
			_brr[_len++] = _tmp ;
		}
	 

		//把数组转换为字符串
		var _latter = _brr.join('');
		return _latter ;
 	}
	
	/**
	 * 把数组变成字符串
	 * @param _arr  : 数组
	 * @return _str : 返回的字符串
	 * @auth  方小洲
	 */
	function _changeArrayToString(_arr){
		var _str = _arr.join('');
		return _str ;
	}



	

	var _latter = _doZip(_former);
	document.write("压缩前:"+_former + "<br/>" );  
	document.write("压缩后:"+_changeArrayToString(_latter) + "<br/>" );
	document.write("解压后:"+_doUnZip(_latter) + "<br/>" );
 
  </SCRIPT>
 </HEAD>

 <BODY>
  
 </BODY>
</HTML>
 只支持纯数字
分享到:
评论

相关推荐

    WinRAR_4.0.exe

    在 e:\text 目录下的 rar 压缩文件中搜索十六进制字符串 f0 e0 ae ae ab 2d 83 e3 a9。 k 锁定压缩文件。任何试图改变压缩文件的命令都会被忽略。 例子: rar k final.rar l[t,b] 压缩文件的内容列表...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例060 把数字格式化为货币字符串 76 实例061 格式化当前日期 77 实例062 货币金额大写格式 78 实例063 String类格式化当前日期 80 实例064 字符串大小写转换 82 实例065 字符与Unicode码的转换 83 4.2 辨别字符串 ...

    易语言540个易模块

    获取字符串尺寸 行数 I IC卡读写模块 1.0 IP地址编辑框2.0 J 记录集读写操作 加解密文本1.1 加密 加密解密文本1.0 加密配置文件操作模块 加强执行1.0 加载进度条 加载进度条v2.0 结束进程模块 进程模块 ...

    790个易模块打包下载-2

    获取字符串尺寸.ec 记录集读写操作.ec 加密.ec 加解密文本1.1.ec 加密解密文本1.0.ec 加密配置文件操作模块.ec 加强执行1.0.ec 加载进度条.ec 加载进度条v2.0.ec 结束进程模块.ec 进程模块.ec 进程相关...

    790个易模块-3

    获取字符串尺寸.ec 记录集读写操作.ec 加密.ec 加解密文本1.1.ec 加密解密文本1.0.ec 加密配置文件操作模块.ec 加强执行1.0.ec 加载进度条.ec 加载进度条v2.0.ec 结束进程模块.ec 进程模块.ec 进程相关...

    790个易模块打包

    获取字符串尺寸.ec 记录集读写操作.ec 加密.ec 加解密文本1.1.ec 加密解密文本1.0.ec 加密配置文件操作模块.ec 加强执行1.0.ec 加载进度条.ec 加载进度条v2.0.ec 结束进程模块.ec 进程模块.ec 进程相关...

    易语言模块914个

    取纯数字时间文本模块.ec 取网卡参数.ec 取网页元素.ec 取腾讯TT浏览器的地址栏文本模块.ec 取非系统进程全路径文件名.ec 变速模块(1.0).EC 变速模块.ec 同步目录.ec 同步缩放控件.ec 同步缩放控件1.0.ec ...

    JAVA上百实例源码以及开源项目源代码

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    flash shiti

    如果X为一字符串,则函数将X解释为一个指数形式的十进制数; D. 如果X未定义,则返回0。 41.按钮的属性有那些? A. 按钮的属性有UP; B. 按钮的属性有UP和OVER; C. 按钮的属性有DOWN; D. 按钮的属性有HIT. ...

    JAVA上百实例源码以及开源项目

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    易语言模块大全(共775个模块)

    取纯数字时间模块(1.0).zip 取网卡参数(1.0).zip 取浏览器信息(1.1).zip 取数字型组合时间(1.0).zip 求真函数动态调用类(1.0).zip 求真文件对话框模块(1.0).zip 求真文件拖放模块(1.0).zip 求真树型框操作类(1.2)....

    易语言700模块打包

    获取字符串尺寸(1.3).zip Hex--Dec(1.0).zip Hex---Dec(1.0).zip HTTP页面访问模块(1.0).zip HTTP访问模块(1.1).zip 滑块条扩容模块(1.0).zip 互联网扩展模块(1.1).zip 和是几与谁最大(1.0).zip 回调函数1.0...

    1345个易语言模块

    取纯数字时间文本模块.ec 取网卡MAC.ec 取网卡参数.ec 取网络文件尺寸.ec 取网页元素.ec 取 腾讯TT浏览器的地址栏文本模块.ec 取节气模块.ec 取试用数据.ec 取非系统进程全路径文件名.ec 变身_超级编辑 框.ec 变速...

Global site tag (gtag.js) - Google Analytics