Kapsamlı Türkçe veri işleme, doğrulama, formatlama ve sahte Türkçe veri üretme araçları kütüphanesi.
├── src/
│ ├── alfabet/alfabet.js
│ ├── date/date.js
│ ├── iban/iban.js
│ ├── phone/phone.js
│ ├── slang/slang.js
│ ├── number/number.js
│ ├── plaka/plaka.js
│ ├── identity/identity.js
│ ├── syllable/syllable.js
│ ├── stopwords/stopwords.js
│ ├── faker/faker.js
│ ├── currency/currency.js
│ ├── address/address.js
│ ├── text/text.js
│ ├── validation/validation.js
│ ├── encryption/encryption.js
│ ├── network/network.js
│ └── statistics/statistics.js
├── index.js
├── test.js
├── package.json
├── README.md
├── LICENSE
├── .gitignore
Her modül kendi klasöründe, ana dosyasıyla birlikte bulunur. Tüm modüller index.js üzerinden dışa aktarılır.
npm install turkish-toolsconst turkishTools = require('turkish-tools');
// Türkçe karakterleri İngilizce'ye çevir
console.log(turkishTools.turkishToEnglish('Çalışma')); // Calisma
// Sahte isim üret
console.log(turkishTools.fakeName()); // Örn: Ayşe Yılmaz
// TC kimlik numarası doğrula
console.log(turkishTools.validateTC('12345678901')); // true/false
// Tarihi Türkçe formatla
console.log(turkishTools.formatDateTR(new Date())); // 12 Mayıs 2024 Pazar
// Para miktarını formatla
console.log(turkishTools.formatTL(1234.56)); // ₺1.234,56
// Şifre hash'le
console.log(turkishTools.sha256Hash('şifrem')); // hash değeri
// İstatistik hesapla
console.log(turkishTools.calculateMean([1, 2, 3, 4, 5])); // 3// Türkçe karakterleri İngilizce'ye çevir
turkishTools.turkishToEnglish('Çalışma'); // Calisma
// İngilizce karakterleri Türkçe'ye çevir
turkishTools.englishToTurkish('Calisma'); // Çalışma
// URL dostu hale getir
turkishTools.toUrlFriendly('Merhaba Dünya!'); // merhaba-dunya
// Türkçe karakter kontrolü
turkishTools.hasTurkishChars('Merhaba'); // true
turkishTools.countTurkishChars('Çalışma'); // 2// Tam tarih formatı
turkishTools.formatDateTR(new Date()); // 12 Mayıs 2024 Pazar
// Kısa tarih formatı
turkishTools.formatDateShortTR(new Date()); // 12 May 2024
// Gün ve ay
turkishTools.formatDayMonthTR(new Date()); // 12 Mayıs
// Tarih ve saat
turkishTools.formatDateTimeTR(new Date()); // 12 Mayıs 2024 Pazar 14:30
// Tarih kontrolleri
turkishTools.isToday(new Date()); // true/false
turkishTools.isYesterday(new Date()); // true/false
turkishTools.isTomorrow(new Date()); // true/false
// Gün farkı
turkishTools.daysFromNow(new Date('2024-01-01')); // 123// IBAN doğrula
turkishTools.validateIBAN('TR330006100519786457841326'); // true
// IBAN formatla
turkishTools.formatIBAN('TR330006100519786457841326'); // TR33 0006 1005 1978 6457 8413 26
// Banka kodu al
turkishTools.getBankCodeFromIBAN('TR330006100519786457841326'); // 00061
// Hesap numarası al
turkishTools.getAccountNumberFromIBAN('TR330006100519786457841326'); // 00519786457841326
// IBAN maskele
turkishTools.maskIBAN('TR330006100519786457841326'); // TR33 **** **** **** **** 8413
// Türk IBAN'ı kontrolü
turkishTools.isTurkishIBAN('TR330006100519786457841326'); // true// Telefon numarasını normalize et
turkishTools.normalizePhone('0532 123 45 67'); // +905321234567
// Telefon numarası doğrula
turkishTools.validatePhone('0532 123 45 67'); // true
// Telefon formatla
turkishTools.formatPhone('+905321234567', 'local'); // 532 123 45 67
turkishTools.formatPhone('+905321234567', 'national'); // 0532 123 45 67
// Operatör bilgisi
turkishTools.getOperatorFromPhone('+905321234567'); // Turkcell
// Telefon maskele
turkishTools.maskPhone('+905321234567'); // +90 532 *** *** 567
// Telefon tipi
turkishTools.getPhoneType('+905321234567'); // mobile// Uygunsuz kelimeleri sansürle
turkishTools.filterSlang('Kötü bir kelime'); // K*** bir kelime
// Uygunsuz kelime kontrolü
turkishTools.hasSlang('Bu metin temiz'); // false
// Uygunsuz kelimeleri bul
turkishTools.findSlang('Kötü bir kelime var'); // ['kötü']
// Uygunsuz kelime sayısı
turkishTools.countSlang('Kötü bir kelime var'); // 1
// Metni tamamen temizle
turkishTools.cleanSlang('Kötü bir kelime'); // bir kelime// Sayıyı yazıya çevir
turkishTools.numberToText(123); // yüz yirmi üç
// Para formatında
turkishTools.amountToText(1234.56); // bin iki yüz otuz dört TL elli altı kuruş
// Sıra sayısı
turkishTools.ordinalToText(3); // üçüncü
// Yüzde formatında
turkishTools.percentageToText(25); // yirmi beş yüzde// Plaka kodundan şehir
turkishTools.plakaToCity(34); // İstanbul
// Şehirden plaka kodu
turkishTools.cityToPlaka('İstanbul'); // 34
// Tüm plaka kodları
turkishTools.getAllPlateCodes(); // {1: 'Adana', 2: 'Adıyaman', ...}
// Plaka kodu geçerliliği
turkishTools.isValidPlateCode(34); // true
// Plaka formatla
turkishTools.formatPlateCode(5); // 05
// Tam plaka oluştur
turkishTools.createFullPlate(34, 'ABC', '123'); // 34 ABC 123
// Bölgesel gruplar
turkishTools.getPlateCodesByRegion(); // {Marmara: [10, 11, ...], ...}// TC kimlik numarası doğrula
turkishTools.validateTC('12345678901'); // true
// TC formatla
turkishTools.formatTC('12345678901'); // 123 456 789 01
// TC maskele
turkishTools.maskTC('12345678901'); // 123 *** *** 01
// Doğum tarihi tahmin et
turkishTools.getBirthDateFromTC('12345678901'); // {year: 1923, month: 4, day: 5, ...}
// Cinsiyet tahmin et
turkishTools.getGenderFromTC('12345678901'); // Erkek/Kadın
// Doğum yılı
turkishTools.getBirthYearFromTC('12345678901'); // 1923// Kelimeyi hecelerine ayır
turkishTools.splitSyllables('merhaba'); // ['mer', 'ha', 'ba']
// Hece sayısı
turkishTools.countSyllables('merhaba'); // 3
// Uzun heceler
turkishTools.findLongSyllables('merhaba'); // []
// Kısa heceler
turkishTools.findShortSyllables('merhaba'); // ['mer', 'ha', 'ba']
// Vurgulu hece
turkishTools.findStressedSyllable('merhaba'); // ba
// Tire ile hecele
turkishTools.hyphenateWord('merhaba'); // mer-ha-ba
// Ünlü/ünsüz kontrolü
turkishTools.isVowel('a'); // true
turkishTools.isConsonant('b'); // true// Stopwords'leri kaldır
turkishTools.removeStopwords('Bu bir örnek cümledir'); // örnek cümledir
// Stopwords kontrolü
turkishTools.hasStopwords('Bu metin temiz'); // true
// Stopwords'leri bul
turkishTools.findStopwords('Bu bir örnek'); // ['Bu', 'bir']
// Stopwords sayısı
turkishTools.countStopwords('Bu bir örnek'); // 2
// Önemli kelimeleri filtrele
turkishTools.filterImportantWords('Bu bir örnek cümle', 3); // örnek cümle
// Kelime frekansı analizi
turkishTools.analyzeWordFrequency('Bu bir örnek cümle'); // {örnek: 1, cümle: 1}
// Tüm stopwords listesi
turkishTools.getAllStopwords(); // ['ve', 'veya', 'ile', ...]
// Yeni stopwords ekle
turkishTools.addStopword('yeni');// Sahte isim
turkishTools.fakeName(); // Ayşe Yılmaz
// Sahte TC
turkishTools.fakeTC(); // 12345678901
// Sahte telefon
turkishTools.fakePhone(); // 0532 123 45 67
// Sahte adres
turkishTools.fakeAddress(); // Atatürk Mahallesi Cumhuriyet Caddesi No:15 İstanbul
// Sahte IBAN
turkishTools.fakeIBAN(); // TR123456789012345678901234
// Sahte e-posta
turkishTools.fakeEmail(); // ayse.yilmaz45@gmail.com
// Sahte plaka
turkishTools.fakePlate(); // 34 ABC 123
// Sahte doğum tarihi
turkishTools.fakeBirthDate(18, 65); // 1985-03-15
// Sahte kullanıcı
turkishTools.fakeUser(); // {firstName: 'Ayşe', lastName: 'Yılmaz', ...}
// Birden fazla sahte kullanıcı
turkishTools.fakeUsers(5); // [user1, user2, user3, user4, user5]// TL formatla
turkishTools.formatTL(1234.56); // ₺1.234,56
// Kuruş dönüştürme
turkishTools.kuruşToTL(12345); // 123.45
turkishTools.tlToKuruş(123.45); // 12345
// Para miktarını yazıya çevir
turkishTools.amountToWords(1234.56); // bin iki yüz otuz dört Türk Lirası elli altı kuruş
// Para maskele
turkishTools.maskAmount(1234567); // 12****67
// Para birimi dönüştür
turkishTools.convertCurrency(100, 'TRY', 'USD'); // 3.5
// Para kısalt
turkishTools.abbreviateAmount(1234567); // 1.2 milyon ₺
// Para durumu
turkishTools.getAmountStatus(-100); // negatif
// Para yuvarla
turkishTools.roundAmount(123.456, 2); // 123.46// Adresi parçala
turkishTools.parseAddress('Atatürk Mahallesi Cumhuriyet Caddesi No:15 İstanbul');
// {neighborhood: 'Atatürk Mahallesi', street: 'Cumhuriyet Caddesi', ...}
// Adres formatla
turkishTools.formatAddress(addressParts, 'short'); // Atatürk Mahallesi Cumhuriyet Caddesi İstanbul
// Adres doğrula
turkishTools.validateAddress('Atatürk Mahallesi İstanbul'); // true
// Şehir çıkar
turkishTools.extractCity('Atatürk Mahallesi İstanbul'); // İstanbul
// Mahalle çıkar
turkishTools.extractNeighborhood('Atatürk Mahallesi İstanbul'); // Atatürk Mahallesi
// Cadde çıkar
turkishTools.extractStreet('Cumhuriyet Caddesi İstanbul'); // Cumhuriyet Caddesi
// Adres maskele
turkishTools.maskAddress('Atatürk Mahallesi Cumhuriyet Caddesi No:15 İstanbul'); // Atatürk M******* İstanbul
// Bölge belirle
turkishTools.getAddressRegion('İstanbul'); // Marmara
// Adres uzunluk kategorisi
turkishTools.getAddressLengthCategory('Kısa adres'); // kısa// Metni temizle
turkishTools.cleanText('Merhaba Dünya!', { removePunctuation: true }); // Merhaba Dünya
// Kelime sayısı
turkishTools.countWords('Merhaba dünya'); // 2
// Karakter sayısı
turkishTools.countCharacters('Merhaba', false); // 7 (boşluksuz)
// Cümle sayısı
turkishTools.countSentences('Merhaba. Nasılsın?'); // 2
// Paragraf sayısı
turkishTools.countParagraphs('Paragraf 1\n\nParagraf 2'); // 2
// Metni böl
turkishTools.splitSentences('Merhaba. Nasılsın?'); // ['Merhaba', 'Nasılsın']
turkishTools.splitWords('Merhaba dünya'); // ['Merhaba', 'dünya']
// Sık kullanılan kelimeler
turkishTools.getMostFrequentWords('Bu bir örnek metin. Bu metin örnek.'); // {bu: 2, örnek: 2, metin: 2}
// Türkçe sayıları çevir
turkishTools.convertTurkishNumbersToDigits('üç kişi'); // 3 kişi
// Metin işlemleri
turkishTools.reverseText('merhaba'); // abahrem
turkishTools.capitalize('merhaba'); // Merhaba
turkishTools.toTitleCase('merhaba dünya'); // Merhaba Dünya
turkishTools.truncateText('Çok uzun metin', 10); // Çok uzun...
// Özel işlemler
turkishTools.removeRepeatedCharacters('merhabaaaa'); // merhabaa
turkishTools.caesarCipher('merhaba', 3); // phukded
turkishTools.caesarDecipher('phukded', 3); // merhaba
turkishTools.removeEmojis('Merhaba 😊'); // Merhaba
turkishTools.removeHtmlTags('<p>Merhaba</p>'); // Merhaba// E-posta doğrula
turkishTools.validateEmail('test@example.com'); // true
turkishTools.validateTurkishEmail('test@gmail.com'); // true
// Şifre doğrula
turkishTools.validatePassword('GüçlüŞifre123', { requireSpecialChars: true });
// {isValid: false, errors: ['Şifre en az bir özel karakter içermelidir']}
// Kullanıcı adı doğrula
turkishTools.validateUsername('kullanici123'); // {isValid: true, errors: []}
// Türk isim doğrula
turkishTools.validateTurkishName('Ahmet'); // {isValid: true, errors: []}
// Yaş doğrula
turkishTools.validateAge(25, { minAge: 18, maxAge: 65 }); // {isValid: true, errors: []}
// URL doğrula
turkishTools.validateURL('https://example.com'); // true
turkishTools.validateTurkishURL('https://example.com.tr'); // true
// Tarih doğrula
turkishTools.validateDate('2024-01-01'); // true
turkishTools.validateFutureDate('2025-01-01'); // true
turkishTools.validatePastDate('2023-01-01'); // true
// Sayı doğrula
turkishTools.validateNumber(42, { min: 0, max: 100, integer: true }); // {isValid: true, errors: []}
// Metin uzunluğu doğrula
turkishTools.validateTextLength('Merhaba', { minLength: 5, maxLength: 20 }); // {isValid: true, errors: []}
// Form doğrula
const formData = { email: 'test@example.com', password: '123456' };
const rules = {
email: { required: true, type: 'email' },
password: { required: true, type: 'password', options: { minLength: 6 } }
};
turkishTools.validateForm(formData, rules);
// {isValid: false, errors: {password: ['Şifre en az 8 karakter olmalıdır']}}// Hash işlemleri
turkishTools.md5Hash('test'); // md5 hash
turkishTools.sha256Hash('test'); // sha256 hash
turkishTools.sha512Hash('test'); // sha512 hash
// Şifre hash'leme
const hashedPassword = await turkishTools.hashPassword('şifrem'); // güvenli hash
const isValid = await turkishTools.verifyPassword('şifrem', hashedPassword); // true
// AES şifreleme
const encrypted = turkishTools.aesEncrypt('gizli mesaj', '32karakterlikanahtar');
const decrypted = turkishTools.aesDecrypt(encrypted, '32karakterlikanahtar'); // gizli mesaj
// Base64 kodlama
turkishTools.base64Encode('test'); // dGVzdA==
turkishTools.base64Decode('dGVzdA=='); // test
// Güvenli string üretme
turkishTools.generateRandomString(32); // rastgele 32 karakter
turkishTools.generateSecurePassword(12); // güvenli şifre
// Dosya hash'i
turkishTools.hashFile(fileBuffer, 'sha256'); // dosya hash'i
// HMAC oluşturma
turkishTools.createHMAC('mesaj', 'anahtar'); // HMAC
// Şifre güvenlik analizi
turkishTools.analyzePasswordSecurity('GüçlüŞifre123');
// {score: 8, level: 'güçlü', suggestions: []}
// JWT token
const token = turkishTools.createJWT({userId: 123}, 'gizli-anahtar', 3600);
const result = turkishTools.verifyJWT(token, 'gizli-anahtar');
// {valid: true, payload: {userId: 123, iat: ..., exp: ...}}// IP adresi doğrulama
turkishTools.validateIP('192.168.1.1'); // true
turkishTools.validateIPv4('192.168.1.1'); // true
turkishTools.validateIPv6('2001:db8::1'); // true
// IP adresi kontrolü
turkishTools.isPrivateIP('192.168.1.1'); // true
turkishTools.isLoopbackIP('127.0.0.1'); // true
// Domain doğrulama
turkishTools.validateDomain('example.com'); // true
turkishTools.validateTurkishDomain('example.com.tr'); // true
// DNS kayıtları kontrolü
const dnsRecords = await turkishTools.checkDNSRecords('example.com');
// {a: [...], mx: [...], txt: [...]}
// URL işlemleri
turkishTools.parseURL('https://example.com/path?param=value');
// {protocol: 'https:', hostname: 'example.com', ...}
turkishTools.normalizeURL('example.com'); // https://www.example.com
turkishTools.shortenURL('https://example.com/very/long/path', 30); // example.com.../path
// E-posta domain kontrolü
const isValidDomain = await turkishTools.validateEmailDomain('test@example.com'); // true
// Port işlemleri
turkishTools.validatePort(80); // true
turkishTools.getCommonPort(80); // HTTP
// MAC adresi
turkishTools.validateMAC('00:11:22:33:44:55'); // true
turkishTools.formatMAC('00:11:22:33:44:55', 'dash'); // 00-11-22-33-44-55
// Ağ maskesi ve CIDR
turkishTools.validateSubnetMask('255.255.255.0'); // true
turkishTools.validateCIDR('192.168.1.0/24'); // true
turkishTools.isIPInNetwork('192.168.1.100', '192.168.1.0/24'); // true
// Bağlantı testi
const isConnected = await turkishTools.testConnection('google.com', 80); // true// Temel istatistikler
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
turkishTools.calculateMean(numbers); // 5.5
turkishTools.calculateMedian(numbers); // 5.5
turkishTools.calculateMode([1, 2, 2, 3, 4]); // [2]
// Dağılım istatistikleri
turkishTools.calculateStandardDeviation(numbers); // 3.0276503540974917
turkishTools.calculateVariance(numbers); // 9.166666666666666
turkishTools.calculateRange(numbers); // 9
// Çeyrekler
turkishTools.calculateQuartiles(numbers); // {q1: 3.25, q2: 5.5, q3: 7.75}
turkishTools.calculateIQR(numbers); // 4.5
// Toplam ve çarpım
turkishTools.calculateSum(numbers); // 55
turkishTools.calculateProduct([1, 2, 3, 4]); // 24
// Farklı ortalamalar
turkishTools.calculateGeometricMean([1, 2, 4, 8]); // 2.8284271247461903
turkishTools.calculateHarmonicMean([1, 2, 4]); // 1.7142857142857142
turkishTools.calculateWeightedMean([1, 2, 3], [1, 2, 3]); // 2.3333333333333335
// Korelasyon
turkishTools.calculateCorrelation([1, 2, 3], [2, 4, 6]); // 1
// Frekans dağılımı
turkishTools.calculateFrequencyDistribution([1, 2, 2, 3]); // {1: 1, 2: 2, 3: 1}
// Yüzdelik dilimler
turkishTools.calculatePercentile(numbers, 50); // 5.5
turkishTools.calculateZScore(numbers, 5); // -0.165
// Aykırı değerler
turkishTools.findOutliers([1, 2, 3, 100, 4, 5]); // [100]
// İstatistiksel özet
const summary = turkishTools.generateStatisticsSummary(numbers);
// {count: 10, mean: 5.5, median: 5.5, mode: [], stdDev: 3.0276503540974917, ...}
// Metin istatistikleri
const textStats = turkishTools.calculateTextStatistics('Bu bir örnek metin. Bu metin örnek.');
// {characterCount: 35, wordCount: 7, sentenceCount: 2, paragraphCount: 1, ...}// Modül bilgilerini al
const info = turkishTools.getInfo();
console.log(info);
// {
// version: '1.0.0',
// description: 'Kapsamlı Türkçe veri işleme, doğrulama, formatlama ve sahte Türkçe veri üretme araçları',
// modules: ['alfabet', 'date', 'iban', 'phone', 'slang', 'number', 'plaka', 'identity', 'syllable', 'stopwords', 'faker', 'currency', 'address', 'text', 'validation', 'encryption', 'network', 'statistics'],
// totalFunctions: 180+
// }npm testMIT
- Fork yapın
- Feature branch oluşturun (
git checkout -b feature/amazing-feature) - Commit yapın (
git commit -m 'Add amazing feature') - Push yapın (
git push origin feature/amazing-feature) - Pull Request oluşturun
- Türk alfabesi ve karakter işlemleri
- Türkçe tarih ve saat formatlama
- IBAN, telefon, TC kimlik, plaka doğrulama
- Argo/küfür filtresi ve sansür
- Sayıdan yazıya ve para birimi işlemleri
- Plaka-şehir eşleştirme
- Türkçe kelime heceleme ve stopwords temizleme
- Sahte veri üretici (isim, adres, telefon, e-posta, vs.)
- Adres ve metin işleme, analiz ve özetleme
- Gelişmiş veri doğrulama ve şifreleme araçları
- Ağ/internet yardımcıları (IP, domain, port, DNS, vs.)
- Temel ve ileri istatistik fonksiyonları
- Modüler, genişletilebilir ve test edilebilir yapı
Daha fazla bilgi ve örnek için yukarıdaki modül ve fonksiyon açıklamalarına göz atabilirsiniz.