蛋疼?那你要注意保养了,比这更让你蛋疼的问题多着呢。 <script type="text/javascript"> function calcu(e){ var srcEl = e.target||e.srcElement; var reg = /^(.*?)=\s*(\d+)?$/; var input = srcEl.value; var match = input.match(reg); var expr; var result;
这小功能蛮有意思,优化下 <script type="text/javascript"> function calcu(e){ var srcEl = e.target||e.srcElement; var reg = /^(.*?)=\s*(\d+)?$/; var input = srcEl.value; var match = input.match(reg); var expr, result, calcResult="";
整理下注释 <script type="text/javascript"> function calcu(e){ var srcEl = e.target||e.srcElement; var reg = /^(.*?)=\s*(\d+)?$/; var input = srcEl.value; var match = input.match(reg); var expr, result, calcResult; expr = (match && match[1])||""; result = (match && match[2])||""; calcResult = "";
function keypress(evt){ var evnt=evt?evt:window.event; if(evnt.keyCode==61){ var result=eval(document.getElementById("Text1").value); document.getElementById("Text1").value+=result; } }document.onkeypress=keypress;我这么写的出来时12+214= 那个=号怎么弄到前面去。。
单独=号的键码是61
<script type="text/javascript">
function calcu(e){
var srcEl = e.target||e.srcElement;
var reg = /^(.*?)=\s*(\d+)?$/;
var input = srcEl.value;
var match = input.match(reg);
var expr;
var result;
//若没有输入完整或已经计算过了,不再处理
expr = (match && match[1])||"";
result = (match && match[2])||"";
if( expr && !result ){
try{
result = eval("(" + expr + ")");
srcEl.value = expr + "=" + result;
}catch(e){}
}
}
</script><input type="text" id="txtInput" value=""
oninput="calcu(event)"
onpropertychange="calcu(event)"/>
<script type="text/javascript">
function calcu(e){
var srcEl = e.target||e.srcElement;
var reg = /^(.*?)=\s*(\d+)?$/;
var input = srcEl.value;
var match = input.match(reg);
var expr, result, calcResult="";
//若没有输入完整或已经计算过了,不再处理
expr = (match && match[1])||"";
result = (match && match[2])||"";
//若表达式没有输出入完,退出
if( !expr ) return;
//若输入的表达式计算错误,退出
try{
calcResult = eval("(" + expr + ")");
}catch(e){
return;
}
//若没有计算过,或计算过的记过已经不对,则重新计算并赋值
if( !result || result != calcResult ){
try{
srcEl.value = expr + "=" + calcResult;
}catch(e){}
}
}
</script><input type="text" id="txtInput" value=""
oninput="calcu(event)"
onpropertychange="calcu(event)"/>
<script type="text/javascript">
function calcu(e){
var srcEl = e.target||e.srcElement;
var reg = /^(.*?)=\s*(\d+)?$/;
var input = srcEl.value;
var match = input.match(reg);
var expr, result, calcResult; expr = (match && match[1])||"";
result = (match && match[2])||"";
calcResult = "";
//若表达式没有输出入完,退出
if( !expr ) return;
//若输入的表达式计算错误,退出
try{
calcResult = eval("(" + expr + ")");
}catch(e){
return;
}
//若没有计算过,或计算过的值已经不对,则重新计算并赋值
if( !result || result != calcResult ){
try{
srcEl.value = expr + "=" + calcResult;
}catch(e){}
}
}
</script><input type="text" id="txtInput" value=""
oninput="calcu(event)"
onpropertychange="calcu(event)"/>
var evnt=evt?evt:window.event;
if(evnt.keyCode==61){
var result=eval(document.getElementById("Text1").value);
document.getElementById("Text1").value+=result;
}
}document.onkeypress=keypress;我这么写的出来时12+214=
那个=号怎么弄到前面去。。