Почему работает только первый if?
Русские буквы преобразую в коды символов, остальные потом обратно в самих себя.
<script>
html = "<html><head>АаБб</head></html>";
longtext = html.length;
console.log(longtext);
var arr = new Array();
var code = new Array();
for (i = 0; i < longtext; i++) {
arr[i] = html.charCodeAt(i);
if(1039 < arr[i] < 1072){
code[i] = '['+arr[i]+']'; console.log("1 if");
}
else if(arr[i] == 1025){
code[i] = '['+arr[i]+']'; console.log("2 if");
}
else if(arr[i] == 1105){
code[i] = '['+arr[i]+']'; console.log("3 if");
}
else if(1071 < arr[i] < 1104){
code[i] = '['+arr[i]+']'; console.log("4 if");
}
else{
code[i] = html.charAt(i); console.log("other if");
}
}
</script>
Ответ на каждый символ 1 if т.е. всегда выполняется только первое условие. Почему? |
В логику не вникал, но сомневаюсь, что такой синтаксис поддерживается, там скорей всего слабая типизация *работает*
alert(100>2>1) //>>>> false |
Возможно вот такое решение подойдет
string="<html><head>АаБб</head></html>"
re=/[а-яё]/i
alert(
string.split("").map(function(symbol, i){if(re.test(symbol)) return string.charCodeAt(i); return symbol}).join("")
)
|
Да я кстати думал о чём-то таком, более изящном, сегодня попробую, спасибо!
|
Цитата:
Надо так: 1039 < arr[i] && 1072 > arr[i] |
| Часовой пояс GMT +3, время: 04:30. |