Javascript 解析HTML表单输入中的数学公式,并将结果输出到同一字段
我想做的是有一个输入框,可以直接输入一个美元数字($10.99),也可以让用户输入一个计算——比如用户输入“2x9.99”或“2*9.99”或“9.99+9.99”等等。。。在他们输入后,值被输出回与结果相同的输入字段,如本例中的19.98 我做了一些搜索,但无法准确地找出如何准确地提出问题以找到好的答案。一个小时的搜寻,我再也没有靠近。我是一名PHP/MYSQL开发人员,我认为这是一份JS工作,我只是一个小黑客 提前谢谢 工作示例: 您的HTML:Javascript 解析HTML表单输入中的数学公式,并将结果输出到同一字段,javascript,html,forms,Javascript,Html,Forms,我想做的是有一个输入框,可以直接输入一个美元数字($10.99),也可以让用户输入一个计算——比如用户输入“2x9.99”或“2*9.99”或“9.99+9.99”等等。。。在他们输入后,值被输出回与结果相同的输入字段,如本例中的19.98 我做了一些搜索,但无法准确地找出如何准确地提出问题以找到好的答案。一个小时的搜寻,我再也没有靠近。我是一名PHP/MYSQL开发人员,我认为这是一份JS工作,我只是一个小黑客 提前谢谢 工作示例: 您的HTML: <input type="text"
<input type="text" id="foo" value='enter math' onblur="matthy(this)">
显然,这需要一些认真的验证
使用PHP,您可以使用eval()
计算字符串(来自输入字段)并输出结果。如果不想刷新页面,则需要一些Javascript AJAX
<?php
$input = $_POST['myinputfield'];
eval('$result = '.$input.';');
print($result);
?>
工作示例:
您的HTML:
<input type="text" id="foo" value='enter math' onblur="matthy(this)">
显然,这需要一些认真的验证
使用PHP,您可以使用eval()
计算字符串(来自输入字段)并输出结果。如果不想刷新页面,则需要一些Javascript AJAX
<?php
$input = $_POST['myinputfield'];
eval('$result = '.$input.';');
print($result);
?>
首先创建一个输入和按钮,然后在脚本标记中创建函数calculate来计算输入,这很容易
<input id="calc" />
<button onclick="calculate()">calculate</button>
<div id="result"></div>
<script>
function calculate(){
document.getElementById('result')
.innerText=eval(document.getElementById('calc').value);
}
</script>
计算
函数计算(){
document.getElementById('result')
.innerText=eval(document.getElementById('calc').value);
}
首先创建一个输入和按钮,然后在脚本标记中创建函数calculate来计算输入,这很容易
<input id="calc" />
<button onclick="calculate()">calculate</button>
<div id="result"></div>
<script>
function calculate(){
document.getElementById('result')
.innerText=eval(document.getElementById('calc').value);
}
</script>
计算
函数计算(){
document.getElementById('result')
.innerText=eval(document.getElementById('calc').value);
}
取决于您是否要处理多个无效条目,那么网络中有很多js库。(即
如果没有,您可以用javascript快速完成
let value = $("input").value;
// replace x with asterisk and replace dollar with blank
eval(value.replace(/[xX]/g, "*").replace(/\$/g, ''));
取决于你是否想处理多个无效条目,那么网络中有很多js库 如果没有,您可以用javascript快速完成
let value = $("input").value;
// replace x with asterisk and replace dollar with blank
eval(value.replace(/[xX]/g, "*").replace(/\$/g, ''));
就我个人而言,我喜欢在服务器端(lol)做这些事情,最近我一直在使用基于PHP的lexer解析器类型的东西,所以我想我会与大家分享这一点。splat
然后,您只需为上面的令牌流创建一个解析器,使用一些关于操作顺序的规则或您拥有的规则,然后,宾果!加入一些Ajax和bango!我个人喜欢在服务器端做这些事情(lol)最近我一直在使用基于PHP的lexer解析器类型的东西,所以我想我会与大家分享这一点。splat
然后,您只需为上面的令牌流创建一个解析器,使用一些关于操作顺序的规则或您所拥有的规则,然后,宾果!加入一些Ajax和bango!使用现有的库,谷歌可以提供帮助,在一次搜索中找到数百个。Stackoverflow不是一个免费的代码编写服务或“如何”教程服务计算器javascript"考虑使用具有托管状态的受控组件,您可以选择支持数学表达式的ECMAScript语法,并仅使用该值,或者您可以创建自己的语法,解析该值并自行评估。您选择了什么?如果使用EVE,您可能首先要解析它,以检查它是否只包含合适的字符。s(例如0-9、+、-、/、*、等)使用现有库,谷歌可以帮助,在一次搜索中找到数百个。Stackoverflow不是免费的代码编写服务或“如何”教程服务将其作为“计算器javascript”搜索考虑使用具有托管状态的受控组件,您可以选择支持数学表达式的ECMAScript语法,并仅使用该值,或者您可以创建自己的语法,解析该值并自行评估。您选择了什么?如果使用EVE,您可能首先要解析它,以检查它是否只包含合适的字符。s(例如,0-9、+、-、/、*、等)应该对输入值进行一些验证,尤其是在服务器上对其求值时。@RobG绝对不是完整的代码。应该对输入值进行一些验证,尤其是在服务器上对其求值时。@RobG绝对不是完整的代码。