-
-
Save enginkartal/84a215589e6739de6f0cbeb9fd088e4f to your computer and use it in GitHub Desktop.
String.prototype.turkishtoEnglish = function () { | |
return this.replace('Ğ','g') | |
.replace('Ü','u') | |
.replace('Ş','s') | |
.replace('I','i') | |
.replace('İ','i') | |
.replace('Ö','o') | |
.replace('Ç','c') | |
.replace('ğ','g') | |
.replace('ü','u') | |
.replace('ş','s') | |
.replace('ı','i') | |
.replace('ö','o') | |
.replace('ç','c'); | |
}; | |
// Example | |
// let text = 'Ne güzel bir gökkuşağı'; | |
// newText = text.turkishtoEnglish(); | |
// console.log(newText) /Ne guzel bir gokkusagi | |
Daha performanslı bir yola geçtim:
const engChars = {
"Ğ": "G",
"Ü": "U",
"Ş": "S",
"İ": "I",
"Ö": "O",
"Ç": "C",
"ğ": "g",
"ü": "u",
"ş": "s",
"ı": "i",
"ö": "o",
"ç": "c"
};
const toEN=str => [...str].map(c => engChars[c] || c).join("");
Multer'a Upload ettiğim Türkçe karakterli dosya isimlerini Save etmeden önce temizlemek istemiştim. Benim için aşağıdaki çözüm çalıştı.
const UTF8tarzanca = (str) => {
const sonuc = str
.replace(/\xC4\xB1/g, 'i')
.replace(/\xC3\xA7/g, 'c')
.replace(/\xC5\x9F/g, 's')
.replace(/\xC3\xB6/g, 'o')
.replace(/\xC3\xBC/g, 'u')
.replace(/\xC4\x9F/g, 'g')
.replace(/\xC4\xB0/g, 'I')
.replace(/\xC3\x87/g, 'C')
.replace(/\xC5\x9E/g, 'S')
.replace(/\xC3\x96/g, 'O')
.replace(/\xC3\x9C/g, 'U')
.replace(/\xC4\x9E/g, 'G')
return sonuc
}
Herkese merhaba, biraz daha guncel bir cozum:
With ES2015/ES6 String.prototype.normalize(),
const turkish_letters_to_convert = 'Ç,Ğ,İ,Ö,Ş,Ü,ç,ğ,ı,i,ö,ş,ü';
console.log(turkish_letters_to_convert.normalize('NFD').replace(/\p{Diacritic}/gu, ''));
// Expected output: "C,G,I,O,S,U,c,g,ı,i,o,s,u"
The example uses the combination of "Canonical Decomposition (NFD)" with Unicode property escapes.
See the source: https://stackoverflow.com/a/37511463
replace()
yerinereplaceAll()
kullanmanız sorunu çözecektir.Kod: