
Славик
09.02.2016
21:51:57
var Morse = (function() {
var data = {"0":"−−−−−","1":"·−−−−","2":"··−−−","3":"···−−","4":"····−","5":"·····","6":"−····","7":"−−···","8":"−−−··","9":"−−−−·","А":"·−","A":"·−","Б":"−···","B":"−···","В":"·−−","W":"·−−","Г":"−−·","G":"−−·","Д":"−··","D":"−··","Ё":".","Е":"·","E":"·","Ж":"···−","V":"···−","З":"−−··","Z":"−−··","И":"··","I":"··","Й":"·−−−","J":"·−−−","К":"−·−","K":"−·−","Л":"·−··","L":"·−··","М":"−−","M":"−−","Н":"−·","N":"−·","О":"−−−","O":"−−−","П":"·−−·","P":"·−−·","Р":"·−·","R":"·−·","С":"···","S":"···","Т":"−","T":"−","У":"··−","U":"··−","Ф":"··−·","F":"··−·","Х":"····","H":"····","Ц":"−·−·","C":"−·−·","Ч":"−−−·","Ö":"−−−·","Ш":"−−−−","CH":"−−−−","Щ":"−−·−","Q":"−−·−","Ъ":"−−·−−","Ñ":"−−·−−","Ы":"−·−−","Y":"−·−−","Ь":"−··−","X":"−··−","Э":"··−··","É":"··−··","Ю":"··−−","Ü":"··−−","Я":"·−·−","Ä":"·−·−",".":"······",",":"·−·−·−",":":"−−−···",";":"−·−·−·","(":"−·−−·−",")":"−·−−·−","\'":"·−−−−·","\"":"·−··−·","—":"−····−","/":"−··−·","?":"··−−··","!":"−−··−−","Знак раздела":"−···−","Ошибка/перебой":"········","@":"·−−·−·","Конец связи (end contact)":"··−·−"};
return {
converToMorse: function(text) {
var symbols = text.toUpperCase().split('');
var result = "";
symbols.forEach(function(s) {
result += s in data ? data[s] + " " : s + " ";
})
return result;
},
converFromMorse: function(text) {
var symbols = text.split(/(?<!\s)\s|(?<=\s{2})\s/);
var reverted = {};
for (var key in data) {
reverted[data[key]] = key;
}
var result = "", s;
symbols.forEach(function(s){
result += s in reverted ? reverted[s] : s;
});
return result;
}
}
}());