Javascript 想要转换字符串吗
因此,我有一段代码,试图在其中创建一个简单的计算器:Javascript 想要转换字符串吗,javascript,Javascript,因此,我有一段代码,试图在其中创建一个简单的计算器: window.onload = function () {make_buttons ('calc'); } function make_buttons (id) { var parent = document.getElementById(id); var input = document.createElement("input"); input.type = 'text'; input.id =
window.onload = function () {make_buttons ('calc'); }
function make_buttons (id) {
var parent = document.getElementById(id);
var input = document.createElement("input");
input.type = 'text'; input.id = 'inp';
parent.appendChild(input);
for (var i = 0;i < 10; i++){
var btn = document.createElement ("button");
btn.innerHTML = i;
btn.id = i;
parent.appendChild(btn);
(function(index) {btn.onclick = function() {input.value += index;}})(i);
}
var multiply = document.createElement ("button");
multiply.innerHTML = "*";
multiply.id = "*";
parent.appendChild(multiply);
multiply.onclick = function () {input.value += '*';};
var divide = document.createElement ("button");
divide.innerHTML = "/";
divide.id = "/";
parent.appendChild(divide);
divide.onclick = function () {input.value += '/';};
var add = document.createElement ("button");
add.innerHTML = "+";
add.id = "+";
parent.appendChild(add);
add.onclick = function () {input.value += '+';};
var substract = document.createElement ("button");
substract.innerHTML = "-";
substract.id = "-";
parent.appendChild(substract);
substract.onclick = function () {input.value += '-';};
var calc_it = document.createElement ("button");
calc_it.innerHTML = "=";
calc_it.id = "=";
parent.appendChild(calc_it);
calc_it.onclick = function () {calculate ()};
};
function calculate () {
var info = document.getElementById ('inp').value;
console.log(info);
};
window.onload=function(){make_按钮('calc');}
功能生成按钮(id){
var parent=document.getElementById(id);
var输入=document.createElement(“输入”);
input.type='text';input.id='inp';
父.子(输入);
对于(变量i=0;i<10;i++){
var btn=document.createElement(“按钮”);
btn.innerHTML=i;
btn.id=i;
父、子(btn);
(函数(索引){btn.onclick=function(){input.value+=index;}}})(i);
}
var multiply=document.createElement(“按钮”);
multiply.innerHTML=“*”;
multiply.id=“*”;
父。子(乘法);
multiply.onclick=function(){input.value+='*';};
var divide=document.createElement(“按钮”);
divide.innerHTML=“/”;
divide.id=“/”;
父。子(除);
divide.onclick=function(){input.value+='/';};
var add=document.createElement(“按钮”);
add.innerHTML=“+”;
add.id=“+”;
父。子(添加);
add.onclick=function(){input.value+='+';};
var substract=document.createElement(“按钮”);
substract.innerHTML=“-”;
substract.id=“-”;
父项。追加子项(减号);
substract.onclick=function(){input.value+='-';};
var calc_it=document.createElement(“按钮”);
calc_it.innerHTML=“=”;
calc_it.id=“=”;
父.子(计算它);
calc_it.onclick=function(){calculate()};
};
函数计算(){
var info=document.getElementById('inp')。值;
控制台日志(信息);
};
所以现在,当我点击按钮,使输入字段中有5*5时,例如,var信息将等于一个字符串“5*5”。如何转换此字符串,使字符串中的数字为整数,而像*或-这样的运算符也为非字符串
我需要在这里包含一些正则表达式代码吗?这个问题的答案确实很难。最明显和最不受欢迎的答案是评估,但很可能你不会想要它 基本上,您必须编写一个例程来提取要在表达式中使用的任何内容 如果不使用eval或第三方库,如“silentmatts”解决方案(见下文),您可能需要开发自己的例程来解析数据 第三方解决方案: 地点: 吉特: 说到这里,我个人使用eval将字符串转换成数学方程
希望这能有所帮助。糟糕的做法:
eval('5*5')
…呃。。。我真的想避免那样。试试正则表达式。。。或者在变量后面加上数字,然后在任何运算符上按,将字符串变量转换为int或float。。。这样你将拥有所有的部分。。。这就像在计算器中键入表达式一样……不要认为eval总是邪恶的。在这里,一些javascript代码不可能滑入evaled表达式,该表达式是由按下按钮构建的,因此安全风险为===0。Eval是完美的。所以,如果我将字符串“*”转换为int,我就可以在计算中使用它了?好吧,我会尝试再做一些修改,看看我是否可以在没有Eval的情况下完成它。