JSFiddle - React, Tailwind, and code Playground
by Fernando
HTML
<b id="txd"></b><br />
<b id="tx"></b><br />
JavaScript
(function(w){
var morse = {
alpha:{a:'.-',b:'-...',c:'-.-.',d:'-..',e:'.',f:'..-.',g:'--.',h:'....',i:'..',j:'.---',k:'-.-',l:'.-..',m:'--',n:'-.',o:'---',p:'.--.',q:'--.-',r:'.-.',s:'...',t:'-',u:'..-',v:'...-',w:'.--',x:'-..-',y:'-.--',z:'--..'},
code:{},
maxl:0,
encode:function(string){
var p=[];
string.toLowerCase().split(" ").forEach(function(v){
var s=[];
v.split("").forEach(function(l){
s.push(morse.alpha[l]);
});
p.push(s.join(""));
})
return p.join(" ");
},
_decode:function(string){
var l = string.length, c=[];
for ( var i = 0; i<l; i++){
c.push((function(){
var p=[]; n='';
for(var ik = 1; ik<=morse.maxl; ik++){
var res = string.substr(i,ik);
if( n != res ){
n=res;
if(morse.code[res])
p.push(res);
}
};
return p;
})())
}
var li = c.length;
matrix = [];
var fn = function(col, st, mt){
if(!c[col]) return;
for(var n in c[col]){
var co = c[col][n];
var sf = mt.slice(0);
sf.push([col,n]);
if( string === (st+co)){
var code = [];
sf.forEach(function(i){
code.push(morse.code[c[i[0]][i[1]]]);
});
code = code.join("");
matrix.push(code);
}else{
for( var i=col+(1+parseInt(n)); i<li ;i++ ){
fn(i,st+co,sf);
}
}
}
}
fn(0,'',[]);
matrix.sort();
return matrix;
},
decode:function(string){
var res = [];
string.split(" ").forEach(function(v){
res.push(morse._decode(v));
});
return res;
},
ini:function(){
var keys=[],tm={};
for (var n in morse.alpha){
var c = morse.alpha[n];
tm[c]=n;
keys.push(c);
if( morse.maxl< c.length )morse.maxl=c.length;
};
keys.sort().forEach(function(v,k){
morse.code[v]=tm[v];
});
}
}
morse.ini();
w.morse=morse;
})(window);
/////////>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
console.log(morse.encode("cesar"));
var tx='';
var dateini= new...