介绍
摩斯电码(Morse alphabet)(又译为摩尔斯电码)是一种时通时断的信号代码, 这种信号代码通过不同的排列顺序来表达不同的英文字母、数字和标点符号等。
摩斯电码由美国人摩尔斯(Samuel Finley Breese Morse)于1837年发明,为摩尔斯电报机的发明(1835年)提供了条件。
压缩后的主要js
1 | !function(e,r){"object"==typeof module&&module.exports?(module.exports=r(),module.exports.default=module.exports):e.xmorse=r()}("undefined"!=typeof window?window:this,function(){function e(e){return e=e||{},[e.space||"/",e.short||".",e.long||"-"]}function r(e){for(var r=[],n=0;n<e.length;n++)r[n]=("00"+e.charCodeAt(n).toString(16)).slice(-4);return r=r.join(""),r=parseInt(r,16).toString(2)}function n(n,o){o=e(o);var t=[];n=n.replace(/\s+/g,"").toLocaleUpperCase().split("");for(var u,a,i=0,c=n.length;i<c;i++)u=n[i],a=p[u],a||(a=r(u)),t.push(a.replace(/0/g,o[1]).replace(/1/g,o[2]));return t.join(o[0])}function o(e){return e=parseInt(e,2),isNaN(e)?"":unescape("%u"+e.toString(16))}function t(r,n){n=e(n);var t=[];r=r.split(n[0]);for(var p,a,i=0,c=r.length;i<c;i++)p=r[i].replace(/\s+/g,"").replace(new RegExp("\\"+n[1],"g"),"0").replace(new RegExp("\\"+n[2],"g"),"1"),a=u[p],a||(a=o(p)),t.push(a);return t.join("")}var p={A:"01",B:"1000",C:"1010",D:"100",E:"0",F:"0010",G:"110",H:"0000",I:"00",J:"0111",K:"101",L:"0100",M:"11",N:"10",O:"111",P:"0110",Q:"1101",R:"010",S:"000",T:"1",U:"001",V:"0001",W:"011",X:"1001",Y:"1011",Z:"1100",0:"11111",1:"01111",2:"00111",3:"00011",4:"00001",5:"00000",6:"10000",7:"11000",8:"11100",9:"11110",".":"010101",",":"110011","?":"001100","'":"011110","!":"101011","/":"10010","(":"10110",")":"101101","&":"01000",":":"111000",";":"101010","=":"10001","+":"01010","-":"100001",_:"001101",'"':"010010",$:"0001001","@":"011010"},u={};for(var a in p)u[p[a]]=a;return{encode:n,decode:t}}); |
不用看,会用就行
编码
1 | xmorse.encode(string) |
解码
1 | xmorse.decode(string) |
先引入jq
1 | <script src="//cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script> |
html
1 | <div class="panel panel-default"> |
js
1 | // 编码 |
实例
摩斯密码转换器
分割
长
短
END
–…-….-…-/-…-.——.-../-..—.-….–./–…-..-……/–..—….-..-/—.–.-….-../-…–……—./——–….–../-..—-.–…../-.-…-.–.-…/-..-….——.-/—.–.—–…/-..——-….-/——–….–../—-.—……./-.-..–.-.-.-.-/—.–.-….-../——–….–../–…-….-…-/—..-…–…-/-..—-.–…../——–….–../-..—-.–…../-.-..–.—.-../-…………..-/-..—…..–.-/-..——-….-/–……….-.
–..—……../–……–.-…/-……—-.-.-./-.—.—–…-/–..–…..—./–..–…..—./–…..—-..–/-…-..–……-/–…-….-…./-.-..-.-..—–/——–….–../-.-..–.—.-../-..—…..–.-/-.-..-.-.-.-.-./-.-..-.-..–.–/–……….-.
经测试,原本的电码会被hexo渲染,“-”部分莫名其妙的连了起来,上方为错误示例,下方使用代码框防渲染。
1 | --...-....-...-/-...-.------.-../-..---.-....--./--...-..-....../--..---....-..-/---.--.-....-../-...--......---./--------....--../-..----.--...../-.-...-.--.-.../-..-....------.-/---.--.-----.../-..-------....-/--------....--../----.---......./-.-..--.-.-.-.-/---.--.-....-../--------....--../--...-....-...-/---..-...--...-/-..----.--...../--------....--../-..----.--...../-.-..--.---.-../-..............-/-..---.....--.-/-..-------....-/--..........-. |
1 | --..---......../--......--.-.../-......----.-.-./-.---.-----...-/--..--.....---./--..--.....---./--.....----..--/-...-..--......-/--...-....-..../-.-..-.-..-----/--------....--../-.-..--.---.-../-..---.....--.-/-.-..-.-.-.-.-./-.-..-.-..--.--/--..........-. |