-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
147 lines (138 loc) · 5.52 KB
/
script.js
File metadata and controls
147 lines (138 loc) · 5.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
var s = 0;
var s2 = 0;
function keyboard(e){
if(s>s2){
s2++;
document.form.textview.value="";
}
switch(e.keyCode){
case 48: document.form.textview.value = document.form.textview.value+'0'; break;
case 49: document.form.textview.value = document.form.textview.value+'1'; break;
case 50: document.form.textview.value = document.form.textview.value+'2'; break;
case 51: document.form.textview.value = document.form.textview.value+'3'; break;
case 52: document.form.textview.value = document.form.textview.value+'4'; break;
case 53: document.form.textview.value = document.form.textview.value+'5'; break;
case 54: document.form.textview.value = document.form.textview.value+'6'; break;
case 55: document.form.textview.value = document.form.textview.value+'7'; break;
case 56: document.form.textview.value = document.form.textview.value+'8'; break;
case 57: document.form.textview.value = document.form.textview.value+'9'; break;
case 43: document.form.textview.value = document.form.textview.value+'+'; break;
case 45: document.form.textview.value = document.form.textview.value+'-'; break;
case 42: document.form.textview.value = document.form.textview.value+'*'; break;
case 47: document.form.textview.value = document.form.textview.value+'/'; break;
case 61: result(); break;
case 13: result(); break;
case 44: document.form.textview.value = document.form.textview.value+'.'; break;
}
}
addEventListener("keypress", keyboard);
function input(chislo){
if(s>s2){
s2++;
document.form.textview.value="";
}
document.form.textview.value = document.form.textview.value+chislo;
}
function sendJSON() {
let xhr = new XMLHttpRequest();
var send_string = document.form.textview.value;
send_string = send_string.replace(/([+])/g, '$1 %2B');
//Нужно из send_string выделить первое число, знак операции !-*/, второе число
var var1 = "";
var operator = "";
var var2 = "";
var arr = [];
arr = send_string.split('');
var flag = 0;
console.log ('Строка: ', send_string);
console.log ('Длина строки: ', send_string.length);
for (let i = 0; i < send_string.length; i++){
console.log ('Итерация: ', i);
console.log ('Элемент массива при данной итерации: ', arr[i]);
console.log ('Число ли там? - ', !isNaN(arr[i]));
if((!isNaN(arr[i]) || (arr[i] == '.')) && (flag == 0)){
console.log ('Залетели в первый if');
arr[i] = arr[i].toString();
var1 += arr[i];
}
else if ((arr[i] == '+') && (arr[i+1] == ' ') && (arr[i+2] == '%') && (arr[i+3] == '2') && (arr[i+4] == 'B') && (flag == 0)){
console.log ('Залетели в плюсовый if');
flag = 1;
operator = '%2B';
i += 4;
if (arr[i+1] == '-'){
console.log ('Залетели в i+5 if');
operator = '-';
i++;
}
}
else if (((arr[i] == '-')||(arr[i] == '*')||(arr[i] == '/')) && (flag == 0)){
console.log ('Залетели во второй if');
flag = 1;
operator = arr[i];
}
else if ((!isNaN(arr[i]) || (arr[i] == '.')) && (flag == 1)){
console.log ('Залетели в третий if');
arr[i] = arr[i].toString();
var2 += arr[i];
} else {
console.log ('Залетели в else. Будет breake');
break;
}
}
console.log ('var1: ', var1);
console.log ('operator: ', operator);
console.log ('var2: ', var2);
// -----адрес, куда мы отправим нашу JSON-строку-----
let url = "https://l8.scripthub.ru/api.php?module=count&var1=" + var1 + "&operator=" + operator + "&var2=" + var2;
// -----открываем соединение-----
//console.log (document.form.textview.value);
//console.log (send_string);
xhr.open("GET", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
//-----обработка обращения к серверу-----
xhr.onreadystatechange = function () {
//-----если запрос принят и сервер ответил, что всё в порядке-----
if (xhr.readyState === 4 && xhr.status === 200) {
send_string = this.responseText;
send_string = send_string.replace('{"','');
send_string = send_string.replace('":true}','');
document.form.textview.value = send_string;
}
};
xhr.send();
}
function result(){
s++;
sendJSON();
}
function clean(){
document.form.textview.value="";
}
function back(){
var exp = document.form.textview.value;
document.form.textview.value = exp.substring(0,exp.length-1);
}
function clean_chislo(){
var exp = document.form.textview.value;
let counter = -1;
for (let i = 0; i < exp.length; i++){
if((exp[exp.length - i] != '+') && (exp[exp.length - i] != '-') && (exp[exp.length - i] != '*') && (exp[exp.length - i] != '/'))
counter++;
else break;
}
document.form.textview.value = exp.substring(0,exp.length-counter);
if (counter == exp.length-1) document.form.textview.value = "";
}
function znak(){
var exp = document.form.textview.value;
let counter = -1;
for (let i = 0; i < exp.length; i++){
if((exp[exp.length - i] != '+') && (exp[exp.length - i] != '-') && (exp[exp.length - i] != '*') && (exp[exp.length - i] != '/'))
counter++;
else break;
}
var test = exp.substring(0,exp.length-counter)+'-'+exp.substring(exp.length-counter,exp.length);
document.form.textview.value = test;
if (counter == exp.length-1) document.form.textview.value = "";
}