2017-01-01 9 views
-4

영숫자를 로마 숫자로 번역하려고 할 때까지 잘 작동합니다 (최소한 나를 위해).영어 - 라틴어 텍스트 번역기

"18"을 "XVII"로 번역하고 "1212"를 "MCCXII"로 번역하고 싶습니다. 또한 "1,212"를 "MCCXII"로 번역 할 수있는 방법이 있습니까?

가 여기에 모든 코드의 다음 "setInterval을 제거 ("REPLACE_TEXT을() ", 0)을"

<html> 
<head> 
<link rel="icon" href="http://claof.com/ClaofIcon.ico?v=2"></link/> 
<title>English to Latin</title> 
<body bgcolor="lightgray"> 
<center><input style="text-align:center;width:100%" placeholder="English text..." id="english"></input><br> 
<a id="latin"></a></center> 
</body> 
<script> 
xx=0 
function replace_text() { 
document.getElementById('english').value = document.getElementById('english').value.toUpperCase() 
str = document.getElementById('english').value.toLowerCase() 



if (document.getElementById('english').value.length) { 
for (i=100000;i>0;i--) { 
number = document.getElementById('english').value.match(/\d+/)[0] 
v=i 
v.toString() 
if (number.match(v)) { 
xx = toRoman(number.match(v)) 
} 
} 
} 


str = str.split("").reverse().join("") 
str = str.replace(/a/g, ""); 
str = str.replace(/b/g, ""); 
str = str.replace(/c/g, ""); 
str = str.replace(/d/g, ""); 
str = str.replace(/e/g, ""); 
str = str.replace(/f/g, ""); 
str = str.replace(/g/g, "G"); 
str = str.replace(/z/g, ""); 
str = str.replace(/h/g, ""); 
str = str.replace(/i/g, ""); 
str = str.replace(/j/g, ""); 
str = str.replace(/k/g, ""); 
str = str.replace(/l/g, ""); 
str = str.replace(/m/g, ""); 
str = str.replace(/n/g, ""); 
str = str.replace(/o/g, ""); 
str = str.replace(/p/g, ""); 
str = str.replace(/q/g, ""); 
str = str.replace(/r/g, ""); 
str = str.replace(/s/g, ""); 
str = str.replace(/t/g, ""); 
str = str.replace(/v/g, ""); 
str = str.replace(/w/g, ""); 
str = str.replace(/x/g, ""); 
str = str.replace(/y/g, "Y"); 
str = str.replace(/u/g, ""); 
document.getElementById('latin').innerHTML = str 
} 
setInterval("replace_text()",0) 

function toRoman(num) { 
    var result = ''; 
    var decimal = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]; 
    var roman = ["M", "CM","D","CD","C", "XC", "L", "XL", "X","IX","V","IV","I"]; 
    for (var i = 0;i<=decimal.length;i++) { 
    // looping over every element of our arrays 
    while (num%decimal[i] < num) { 
    // keep trying the same number until it won't fit anymore  
     result += roman[i]; 
     // add the matching roman number to our result string 
     num -= decimal[i]; 
     // remove the decimal value of the roman number from our number 
    } 
    } 
    return result; 
} 
</script> 
</head> 
</html> 

그리고 여기

+0

코드의 어느 부분도 숫자를 변환하려고합니까? 확실히 간단한 Google 검색으로 로마 숫자 변환기의 예제를 충분히 찾을 수 있습니까? – JJJ

+1

'setInterval'을 제로 시간으로 설정하지 마십시오! 대신 ['addEventListener'] (https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener)를 사용하십시오. – Mottie

답변