Парсер строк русских имен
На выходе дает JSON
by dipish
HTML
<h1>Парсер русских имен</h1>
Имена (Имя Отчество Фамилия):<br />
<textarea id="input_data" style="width: 100%; height: 300px;"></textarea>
<br />
<button onclick="processData();">Пропарсить</button>
<br />
JSON Output:<br />
<textarea id="output_data" style="width: 100%; height: 300px;"></textarea>
JavaScript
window.strTranslit = function(str)
{
var A = new Array();
A["Ё"]="YO";A["Й"]="I";A["Ц"]="TS";A["У"]="U";A["К"]="K";A["Е"]="E";A["Н"]="N";A["Г"]="G";A["Ш"]="SH";A["Щ"]="SCH";A["З"]="Z";A["Х"]="H";A["Ъ"]="'";
A["ё"]="yo";A["й"]="i";A["ц"]="ts";A["у"]="u";A["к"]="k";A["е"]="e";A["н"]="n";A["г"]="g";A["ш"]="sh";A["щ"]="sch";A["з"]="z";A["х"]="h";A["ъ"]="'";
A["Ф"]="F";A["Ы"]="I";A["В"]="V";A["А"]="A";A["П"]="P";A["Р"]="R";A["О"]="O";A["Л"]="L";A["Д"]="D";A["Ж"]="ZH";A["Э"]="E";
A["ф"]="f";A["ы"]="i";A["в"]="v";A["а"]="a";A["п"]="p";A["р"]="r";A["о"]="o";A["л"]="l";A["д"]="d";A["ж"]="zh";A["э"]="e";
A["Я"]="YA";A["Ч"]="CH";A["С"]="S";A["М"]="M";A["И"]="I";A["Т"]="T";A["Ь"]="'";A["Б"]="B";A["Ю"]="YU";
A["я"]="ya";A["ч"]="ch";A["с"]="s";A["м"]="m";A["и"]="i";A["т"]="t";A["ь"]="'";A["б"]="b";A["ю"]="yu";
return str.replace(/([\u0410-\u0451])/g,
function (str,p1,offset,s) {
if (A[str] != 'undefined'){return A[str];}
}
);
}
window.processData = function() {
var input = document.getElementById('input_data').value,
lines = input.split('\n'),
tmp,
email,
out_lines = [];
for(var i=0, len = lines.length; i < len; i++) {
tmp = lines[i].split(' ');
email = strTranslit(tmp[0][0].toLowerCase() + tmp[2].toLowerCase()) + '@thinkers.org';
out_lines.push("{first_name: '"+tmp[0]+"', middle_name: '"+tmp[1]+"', last_name: '"+tmp[2]+"', email: '"+email+"'}");
}
document.getElementById('output_data').value = out_lines.join(',\n');
}