JS_小工具_文本内容处理时间:2022-11-18 12:36:57 自己写的,功能很简单,只有一些自己想到的常用的方法.以后想到其它的再添加就是了. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>文本内容处理工具</title> <!--<mce:script type="text/javascript" src="../../jquery-1.3.2.min.js" mce_src="jquery-1.3.2.min.js" ></mce:script>--> </head> <mce:style><!-- * { margin:0; padding:0;} .wrap { margin:0 auto; width:800px; } .m { width:800px; height:360px; overflow:scroll; } .btn_box { float:left; margin-top:10px; width:800px; border:0px solid #9F9; } .btn_box a{ float:left; padding:4px 10px; margin:0 10px 10px 0; text-decoration:none; font-size:12px; background-color:#6FF; color:#000; border:1px solid #0CF;} .btn_box a:hover { } .btn_box a:active { background-color:#0F0;} --></mce:style><style mce_bogus="1">* { margin:0; padding:0;} .wrap { margin:0 auto; width:800px; } .m { width:800px; height:360px; overflow:scroll; } .btn_box { float:left; margin-top:10px; width:800px; border:0px solid #9F9; } .btn_box a{ float:left; padding:4px 10px; margin:0 10px 10px 0; text-decoration:none; font-size:12px; background-color:#6FF; color:#000; border:1px solid #0CF;} .btn_box a:hover { } .btn_box a:active { background-color:#0F0;}</style> <body> <div class="wrap"> <textarea class="m" id="m"></textarea> <div class="btn_box" id="btn_box"> <!--<a href="#" title="" onclick="Operation.getLength()" id="a1">dsaf</a>--> </div> </div> </body> <script type="text/javascript"> //var c = console; /* 准备公用函数 */ function getType(o){ var _t; return ((_t = typeof(o)) == "object" ? o==null && "null" ||Object.prototype.toString.call(o).slice(8,-1) :_t).toLowerCase(); } /* 程序主体 */ var RegExpObj = (function(){ var //ASCII 编码不在0-255的字符 RE_ASC = /[^x00-/xff]/g, RE_blank = //s+/g, RE_notCn = /[^/u4e00-/u9fa5/uf900-/ufa2d]/g, RE_empty = /^[/s/n/r/t]*$/g, RE_Int = /^[0-9]*[1-9][0-9]*$/g, RE_Float = /^$/g, RE_Money = /^([+-])?(0|[1-9][0-9]*)(.[0-9]{1,2})?$/g, RE_Email = /^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$/g, RE_URL = /^http:////([/w-]+/.)+[/w-]+(//[/w-.//?%&=]*)?$/g, //HTML和CSS注释 //RE_COMMIT = /(///*)(.[/n|/r]*)*(/*//)|<!--(.[/n|/r]*)*-->/g, //这种是贪婪的,下面的改为惰性的 RE_COMMIT_HTML = /<!--(.[/n|/r]*)*?-->/g, RE_COMMIT_CSS = /(///*)(.[/n|/r]*)*?(/*//)/g, RE_HTMLtag = /<//?[^<>]+>/g, //注意:这里还不贴进HTML标签 RE_COMMIT_1 = /////.*[^/n/r]/g return { //得到长度,中文/字母都算1 getLength : function(str){ return str.length; }, //得到U长度 getRealLength : function(str){ return str.replace(RE_ASC,"--").length; }, //合并多个空格为一个 resetBlank : function(str){ return str.replace(RE_blank," "); }, //删除空格 deleteBlank : function(str){ return str.replace(RE_blank,""); }, //保留中文 getCn : function(str){ return str.replace(RE_notCn,""); }, delCommitHTML : function(str){ return str.replace(RE_COMMIT_HTML,""); }, delCommitCSS : function(str){ return str.replace(RE_COMMIT_CSS,""); }, //删除例如你看到的当前这行注释 delCommit1 : function(str){ return str.replace(RE_COMMIT_1,""); }, delHTMLtag : function(str){ return str.replace(RE_HTMLtag,""); }, replace : function(str,re,r){ try { //如果输入内容是正则,则直接处理 if( getType(eval(re)) == "regexp" ){ return str.replace(eval(re),r); } } catch(e) { //正则中的元字符 var a = [".", "$", "(", ")", "[", "]", "+", "*", "?", "|", "^", "//"]; for(var i=0,l=a.length; i<l; i++){ if( a[i] == re ){ re = "//" + re; //处理元字符 break; } } var regexp = new RegExp("(" + re + ")","g"); return str.replace(regexp,r) || ""; } } // } })(); var Operation = (function(){ var value, m = document.getElementById("m"); //每个方法的中文说明文字 title = { getLength : "内容长度", getRealLength : "内容字节数", deleteBlank : "删除空白", getCn : "保留中文", delCommit : "删除HTML和CSS注释", delHTMLtag : "删除HTML标签", delCommit1 : "删除////注释", replace : "替换内容", del : "删除内容", slice : "截取字符", upper : "大写字母", lower : "小写字母" }, //得到textarea里的内容 _getValue = function(){ return m.value; }, //设置textarea里的内容 _setValue = function(v){ v = (typeof v == "undefined") ? "" : v ; m.value = v; }, //显示结果的方法 _showMsg = function(v){ alert(v); } return { //根据Operation对象的方法生成按钮 makeBtn : function(){ for(var each in Operation){ if( typeof Operation[each] == "function" && each !="makeBtn" ){ var a = document.createElement("a"); a.href = "#"; a.title = a.innerHTML = title[each] || each ; a.onclick = Operation[each]; document.getElementById("btn_box").appendChild(a); } } }, getLength : function(){ _showMsg( "内容长度为:" + RegExpObj.getLength( _getValue() ) ); }, getRealLength : function(){ _showMsg( "内容长度为:" + RegExpObj.getRealLength( _getValue() ) ); }, deleteBlank : function(){ _setValue( RegExpObj.deleteBlank( _getValue() ) ); }, getCn : function(){ _setValue( RegExpObj.getCn( _getValue() ) ); }, //删除如<!---->,/**/这样的注释 delCommit : function(){ _setValue( RegExpObj.delCommitCSS( RegExpObj.delCommitHTML( _getValue() ) ) ); }, //删除HTML标签,其实是删除所有类似<XXX>这样的标签 delHTMLtag : function(){ _setValue( RegExpObj.delHTMLtag( _getValue() ) ); }, //删除如//这样的注释 delCommit1 : function(){ _setValue( RegExpObj.delCommit1( _getValue() ) ); }, replace : function(){ var re = prompt("替换内容:输入字符串或正则 "); var r = prompt("替换为: "); _setValue( RegExpObj.replace( _getValue(), re, r ) ); }, del : function(){ var re = prompt("删除内容: "); _setValue( RegExpObj.replace( _getValue(), re, "" ) ); }, slice : function(){ var n = prompt("截取数量: "); if( isNaN(n) || (//s+/).test(n) || n.length == 0 ){ alert("不是数字吧?"); return;}; _setValue( _getValue().slice(0,n) ); }, upper : function(){ _setValue( _getValue().toUpperCase() ) }, lower : function(){ _setValue( _getValue().toLowerCase() ); } // } })(); Operation.makeBtn(); </script>