我有一个javascript代码(取自另一个论坛)将数字转换为罗马数字。但是当涉及5000这样的数字时,我需要打印带有字符的V,因为V是5.如何覆盖我需要的字符?
<html>
<head> </head>
<body onload="promptForNumber();">
<script>
function promptForNumber(text)
{
if(text == '' ){
text = "Please enter a number from 1 to 100";
}
var n = parseInt(window.prompt(text, ""));
toRoman(n);
}
function toRoman(n) {
var r = '',
decimals = [9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],
roman = ['ix', 'viii', 'vii', 'vi', 'v', 'iv', 'MMM', 'MM', 'M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I'];
for (var i = 0; i < decimals.length; i++) {
while (n >= decimals[i]) {
r += roman[i];
n -= decimals[i];
}
}
document.write(r);
}
</script>
</body>
</html>
答案 0 :(得分:0)
在每个字符后使用\u0305
进行上线。
i\u0305v\u0305
变成了i̅v̅