Hirdetés
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Kezünkben a OnePlus 15 és az Oppo Find X9-ek
- Három új Moto G mutatkozott be
- iPhone topik
- Milyen okostelefont vegyek?
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Okosóra és okoskiegészítő topik
- Apple Watch Sport - ez is csak egy okosóra
- Apple Watch
- Samsung Galaxy S20 FE - tényleg nem lite
Új hozzászólás Aktív témák
-
fatal`
titán
válasz
Neil Watts
#6845
üzenetére
Szia!
Én így csináltam:
public static string RemoveAccents(this string sourceString)
{
var normalizedString = sourceString.Normalize(NormalizationForm.FormD);
var stringBuilder = new StringBuilder(normalizedString);
for (var i = 0; i < stringBuilder.Length; i++)
{
if (CharUnicodeInfo.GetUnicodeCategory(stringBuilder[i]) == UnicodeCategory.NonSpacingMark)
{
stringBuilder.Remove(i, 1);
}
}
return Regex.Replace(stringBuilder.ToString(), "[^A-Za-z0-9_.]", "");
}Mondjuk ez csak betűket, számokat, aláhúzás jelet és pontot enged a szövegbe, de innen már könnyen átírod, ha jól rémlik elég ha kiveszed a regex replacet a végéről.
Fájlnévhez használtam (még van előtte egy szóköz törlés is, csak azt kitöröltem, de csak most vettem észre, hogy neked nem tökéletes. -
Keem1
veterán
válasz
Neil Watts
#6845
üzenetére
Látom, kaptál tippeket, de azért bemásolom az én verziómat.
function convertString(phrase)
{
var returnString = phrase.toLowerCase(); // Ez nem biztos, hogy kell neked
returnString = returnString.replace(/á/g, 'a');
returnString = returnString.replace(/é/g, 'e');
returnString = returnString.replace(/í/g, 'i');
returnString = returnString.replace(/ö/g, 'o');
returnString = returnString.replace(/ő/g, 'o');
returnString = returnString.replace(/ü/g, 'u');
returnString = returnString.replace(/ű/g, 'u');
returnString = returnString.replace(/ú/g, 'u');
returnString = returnString.replace(/ó/g, 'o');
return returnString;
}PHP-ban csináltam, ott egy lépésben, tömb segítségével regex megoldotta. Persze a listát lehet bővíteni tetszés szerint.
-
Karma
félisten
válasz
Neil Watts
#6845
üzenetére
Az ISO-8859-8-at nem ismerem, de az biztos, hogy ha nem is a legrövidebb, ez a helyes megoldása a feladatnak. Nem csak magyar karakterek léteznek a világban.
Javaban annyival könnyebb a helyzet, hogy regexszel ki lehet szűrni a non-spacing markokat, így nem kell karakterenként bejárni.
-
rgeorge
addikt
válasz
Neil Watts
#6845
üzenetére
Valahogy így:
string EkezetNelkul(string sz)
{
byte[] b = Encoding.GetEncoding("ISO-8859-8").GetBytes(sz);
return Encoding.UTF8.GetString(b);
}
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Arc Raiders
- Revolut
- Pánikban a világ a Radeon RX 5000 és 6000 sorozat támogatása miatt
- Kuponkunyeráló
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Háztartási gépek
- Canon MILC: EOS R és M topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- TCL LCD és LED TV-k
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- További aktív témák...
- Olcsó AM4 mehet! GIGABYTE A520M DS3H V2 alaplap Ingyen Fox az árban!
- Google Pixel 10 Pro 256GB, fekete + Pixel Watch 4 45mm LTE + Ajándék: Google Pixel Buds Pro 2
- -ÚJ,2 ÉV GAR- DDR5 GAMER PC: RYZEN 7 8700F/9700X/9800X3D +RX 6600/6700XT +16-64GB DDR5! SZÁMLA!
- Dell Latitude 7430 x360 Ütésálló Érintős Hajtogatós Profi Ultrabook 14" -60% i7-1265U 16/512 IRIS Xe
- HP E24m G4 Monitor FHD IPS webkamerával, Windows Hello-támogatással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest
Fájlnévhez használtam (még van előtte egy szóköz törlés is, csak azt kitöröltem, de csak most vettem észre, hogy neked nem tökéletes.


