Сообщение от krutoy
|
<html>
<head>
<meta charset="windows-1251">
</head>
<body>
<input type="text" value="10+sin(1)" id="a">
<input type="button" value="запуск" OnClick="zap()">
<script>
function zap(){
var a=document.querySelector("#a").value
var test=function(){
var re=/\s*(\d+)\s*([-+*\/])\s*(cos|sin)\s*\(\s*(\d+)\s*\)\s*/i
if(!re.test(a)) return alert ("NO valid data")
var expr=a.match(re),
dig=(+expr[1]),
operator=expr[2],
resultOfFunc=Math[expr[3]](+expr[4]),
result=dig+operator+resultOfFunc
return eval(result)
}
alert (test())
}
</script>
</body>
</html>
|
К сожалению мне малость не понятна конструкция with : собственно как она работает просто при добавлении как текст к переменной source.
И можешь еще помочь с отображением, вот написал код на добавление элементов к уже существующей таблице, но не работает. Вот сам код:
<html>
<head>
<style type="text/css">
table,tr,td {border:1px solid black;}
</style>
<script type="text/javascript">
function zap(){
var h=1;
var source = document.all.a.value;
var toExecString = "with (Math) return " + source;
var result = Function("x", toExecString)(h);//значение x
return result;
}
function zap1(){
var kolvo=6;
for(var i=1;i<=kolvo;i++){
zap();
var obEl=document.getElementById("fig"); //обращение к существующей таблице
var newRow=obEl.insertRow(i); // создание строки
var newCell = newRow.insertCell(0);//создание 1 столбца
zap();
newCell.innerHTML=result; // заполнение 1 столбца
var newCell = newRow.insertCell(1); //создание второго столбца
newCell.innerHTML="2 аналогично 1-ой"; //заполнение 2 столбца
document.body.appendChild(obEl);}// делает эл дочерним
}
</script>
</head>
<body>
<br><br><br><br>
<input type="text" value="cos(x)" name="a">
<input type="button" value="запуск" OnClick="zap1()">
<br><br>
<table id="fig">
<tr>
<td></td>
<td></td>
</tr>
</table><br><br><br><br>
</body>
</html>