2013-01-08 5 views
1

그리스 문자를 유사한 '일반'문자로 대체하는 아래 함수가 있습니다. 그러나 일부 브라우저는이 코드 (IE)를 정말로 좋아하지 않습니다. 나는 그 코드의 그리스 문자 때문에 그것을 상상한다.자바 스크립트에서 그리스어 문자 바꾸기

js를 위반하지 않고 어떻게해야합니까?

function string_to_url(string) { 
    replace = new Array('á','Á','é','É','í','Í','ó','Ó','ú','Ú','ü','Ü','ö','Ö','õ','Õ','û','Û','¾','š','è','ž','ý','ô','ä','ò','å','¼','Š','È','Ž','Ý','Ò','Å','ì','Ì','ê','Æ','æ','Ø','ø'); 

    replace_n = new Array('a','A','e','E','i','I','o','O', 'u','U','u','U','o','O','o','O','u','U','l','s','c','z','y','o','a','n','a','l','s','C','Z','Y','N','A','e','E','e','AE', 'ae','O','o'); 

    for (var i = 0; i < replace.length; i++) { 
     string = string.replace(replace[i], replace_n[i]); 
    } 




    return string; 
} 
+0

jsfiddle의 가능성? – geedubb

+0

무엇이 문제입니까? 오류? 콘솔 메시지? – mplungjan

+4

이들은 그리스 문자가 아닙니다 ... 두 가지 이유 : 그리스 문자에 대해 혼란 스럽거나 복사/붙여 넣기 편집 프로세스로 인해 귀하의 의도가 변경되었습니다. –

답변

1

당신은 JS의 표준이 아닌 문자가이 "순수 ASCII"소스와 더 잘 작동하는지 확인 유니 코드 인코딩을 시도 할 수 있습니다 : (내가 http://rishida.net/tools/conversion/로 전환했다)

function string_to_url(string) { 
    var replace = new Array('\u00E1','\u00C1','\u00E9','\u00C9','\u00ED','\u00CD','\u00F3','\u00D3','\u00FA','\u00DA','\u00FC','\u00DC','\u00F6','\u00D6','\u00F5','\u00D5','\u00FB','\u00DB','\u00BE','\u0161','\u00E8','\u017E','\u00FD','\u00F4','\u00E4','\u00F2','\u00E5','\u00BC','\u0160','\u00C8','\u017D','\u00DD','\u00D2','\u00C5','\u00EC','\u00CC','\u00EA','\u00C6','\u00E6','\u00D8','\u00F8'); 
    var replace_n = new Array('a','A','e','E','i','I','o','O', 'u','U','u','U','o','O','o','O','u','U','l','s','c','z','y','o','a','n','a','l','s','C','Z','Y','N','A','e','E','e','AE', 'ae','O','o'); 

    for (var i = 0; i < replace.length; i++) { 
     string = string.replace(replace[i], replace_n[i]); 
    } 

    return string; 
} 

.

관련 문제