Участник:Bouron/krc-lib.js

function k2l(text){
	var dig=/(гъ|дж|къ|нг)/mgi;
	
	var reg=/([абвгдёжзийклмнопрстфхцчшщыэ])/mgi;
	text=text.replace(/И/gm,"İ");
	text=text.replace(dig,re);

	text=text.replace(reg,re);
	while(text.match(/([^у]?)(у+)([^у]?)/mgi)) text=text.replace(/([^у]?)(у+)([^у]?)/mi,reu);
	
	text=text.replace(/[ъь](я|ю|е)/gmi,re2);
	text=text.replace(/[ъь]/gmi,"");
	
	text=text.replace(/([bvcgğdjzykqlmnñprstfhçşw])(е|Е)/mgi,re3);
	text=text.replace(/е/mg,"ye");
	text=text.replace(/Е/mg,"Ye");
	
	
	text=text.replace(/([bvcgğdjzykqlmnñprstfhçşw])(я|Я)/mgi,re3);
	text=text.replace(/я/mg,"ya");
	text=text.replace(/Я/mg,"Ya");
	
	text=text.replace(/([aouıie])(ю|Ю)/mgi,re4);
	text=text.replace(/([bvcgğdjzykqlmnñprstfhçşw])(ю|Ю)/mgi,re3);
	text=text.replace(/ю/mg,"ü");
	text=text.replace(/Ю/mg,"Ü");
	//text=text.replace(/(ю|Ю)/mgi,re4);
	return text;
}



function reu(str,left,token,right){
	var cap=function(token, sub){
		if(token==token.toUpperCase())return sub.toUpperCase();
		else return sub;
	};
	if(token.length==1){
		if(left.match(/[bvcgğdjzykqlmnñprstfhçşw]/gmi)){
			return left+cap(token,"u")+right;
		}
		else if(left.match(/[aeöiouüıяюе]/gmi)) return left+cap(token,"w")+right;
		else if(right.match(/[aeöiouı]/gmi)) return left+cap(token,"w")+right;
		else if(right.match(/[bvcgğdjzykqlmnñprstfhçşwüяю]/gmi)) return left+cap(token,"u")+right;
		else return left+cap(token,"u")+right;
	}
	else{
		if(left.match(/[bvcgğdjzykqlmnñprstfhçşw]/gmi)){
			return left+reu(str,cap(token.slice(0,1),"u"),token.slice(1),right);
		}
		else if(left.match(/[aeöiouüıяюе]/gmi)){
			return left+reu(str,cap(token.slice(0,1),"w"),token.slice(1),right);
		}
		else if(right.match(/[bvcgğdjzykqlmnñprstfhçşwü]/gmi)){
			return reu(str,left,token.slice(0,-1),cap(token.slice(-1),"u"))+right;
		}
		else if(right.match(/[aeöiouıяю]/gmi)){
			return reu(str,left,token.slice(0,-1),cap(token.slice(-1),"w"))+right;
		}
		else return left+reu(str,cap(token.slice(0,1),"u"),token.slice(1),right);
	}
};

var re=function(str,token){
	if(token[0]==token[0].toUpperCase()) {
		var temp = tokens[token.toLowerCase()];
		return temp.charAt(0).toUpperCase() + temp.slice(1);
	}
	return tokens[token];
};

var re2=function(str,token){
	if(token[0]==token[0].toUpperCase()) {
		var temp = vowels[token.toLowerCase()];
		return "y"+temp.charAt(0).toUpperCase() + temp.slice(1);
	}
	return "y"+vowels[token];
};

var re3=function(str,cons,token){
	if(token[0]==token[0].toUpperCase()) {
		var temp = cons+aftercons[token.toLowerCase()];
		return temp.charAt(0).toUpperCase() + temp.slice(1);
	}
	return cons+aftercons[token];
};

var re4=function(str,cons,token){
	if(token[0]==token[0].toUpperCase()) {
		var temp = cons+"Yu";
		return temp.charAt(0).toUpperCase() + temp.slice(1);
	}
	return cons+"yu";
};

var aftercons={
		е:"e",
		ю:"ü",
		я:"â"
};

var vowels={
	е:"e",
	ю:"u",
	я:"a"
};


var tokens={
	а:'a',
	б:'b',
	в:'v',
	г:'g',
	гъ:'ğ',
	д:'d',
	дж:'c',
	е:'ye',
	ё:'ö',
	ж:'j',
	з:'z',
	и:'i',
	й:'y',
	к:'k',
	къ:'q',
	л:'l',
	м:'m',
	н:'n',
	нг:'ñ',
	о:'o',
	п:'p',
	р:'r',
	с:'s',
	т:'t',
	ф:'f',
	х:'h',
	ц:'ts',
	ч:'ç',
	ш:'ş',
	щ:'şç',
	ы:'ı',
	э:'e',
	ю:'ü',
	я:'a'
		
};

document.getElementById('krc-testing').innerHTML="<textarea style='min-height:220px;width:50%; float:left' id='krc-testing-textarea'></textarea><input type='button' value='Go' onclick='krcConvert()'><br clear='all' /><div style='float:left; width:45%' id='krc-result'></div>";


function krcConvert(){
	var text=document.getElementById('krc-testing-textarea').value;
	text=k2l(text);
	document.getElementById('krc-result').innerHTML=text;
}
Prefix: 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 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya