• <tfoot id='LasXb'></tfoot>

      <small id='LasXb'></small><noframes id='LasXb'>

      <legend id='LasXb'><style id='LasXb'><dir id='LasXb'><q id='LasXb'></q></dir></style></legend>
      <i id='LasXb'><tr id='LasXb'><dt id='LasXb'><q id='LasXb'><span id='LasXb'><b id='LasXb'><form id='LasXb'><ins id='LasXb'></ins><ul id='LasXb'></ul><sub id='LasXb'></sub></form><legend id='LasXb'></legend><bdo id='LasXb'><pre id='LasXb'><center id='LasXb'></center></pre></bdo></b><th id='LasXb'></th></span></q></dt></tr></i><div id='LasXb'><tfoot id='LasXb'></tfoot><dl id='LasXb'><fieldset id='LasXb'></fieldset></dl></div>
        <bdo id='LasXb'></bdo><ul id='LasXb'></ul>

      1. 将字符串计算为 JavaScript 中的数学表达式

        时间:2023-10-12

            <bdo id='Q6txK'></bdo><ul id='Q6txK'></ul>
          • <legend id='Q6txK'><style id='Q6txK'><dir id='Q6txK'><q id='Q6txK'></q></dir></style></legend>

                  <i id='Q6txK'><tr id='Q6txK'><dt id='Q6txK'><q id='Q6txK'><span id='Q6txK'><b id='Q6txK'><form id='Q6txK'><ins id='Q6txK'></ins><ul id='Q6txK'></ul><sub id='Q6txK'></sub></form><legend id='Q6txK'></legend><bdo id='Q6txK'><pre id='Q6txK'><center id='Q6txK'></center></pre></bdo></b><th id='Q6txK'></th></span></q></dt></tr></i><div id='Q6txK'><tfoot id='Q6txK'></tfoot><dl id='Q6txK'><fieldset id='Q6txK'></fieldset></dl></div>

                  <small id='Q6txK'></small><noframes id='Q6txK'>

                    <tbody id='Q6txK'></tbody>
                1. <tfoot id='Q6txK'></tfoot>
                2. 本文介绍了将字符串计算为 JavaScript 中的数学表达式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  如何在不调用 eval(string) 的情况下解析和评估字符串中的数学表达式(例如 '1+1')以产生其数值?

                  How do I parse and evaluate a mathematical expression in a string (e.g. '1+1') without invoking eval(string) to yield its numerical value?

                  在这个例子中,我希望函数接受 '1+1' 并返回 2.

                  With that example, I want the function to accept '1+1' and return 2.

                  推荐答案

                  我最终选择了这个解决方案,它适用于对正整数和负整数求和(对正则表达式稍作修改也适用于小数):

                  I've eventually gone for this solution, which works for summing positive and negative integers (and with a little modification to the regex will work for decimals too):

                  function sum(string) {
                    return (string.match(/^(-?d+)(+-?d+)*$/)) ? string.split('+').stringSum() : NaN;
                  }   
                  
                  Array.prototype.stringSum = function() {
                      var sum = 0;
                      for(var k=0, kl=this.length;k<kl;k++)
                      {
                          sum += +this[k];
                      }
                      return sum;
                  }
                  

                  我不确定它是否比 eval() 快,但由于我必须多次执行该操作,因此运行此脚本比创建大量 javascript 编译器实例更舒服

                  I'm not sure if it's faster than eval(), but as I have to carry out the operation lots of times I'm far more comfortable runing this script than creating loads of instances of the javascript compiler

                  这篇关于将字符串计算为 JavaScript 中的数学表达式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:Jquery *编译器*可能吗? 下一篇:为什么 JavaScript 以不同方式处理字符串和数字之

                  相关文章

                  最新文章

                  • <bdo id='7ZcXi'></bdo><ul id='7ZcXi'></ul>

                3. <i id='7ZcXi'><tr id='7ZcXi'><dt id='7ZcXi'><q id='7ZcXi'><span id='7ZcXi'><b id='7ZcXi'><form id='7ZcXi'><ins id='7ZcXi'></ins><ul id='7ZcXi'></ul><sub id='7ZcXi'></sub></form><legend id='7ZcXi'></legend><bdo id='7ZcXi'><pre id='7ZcXi'><center id='7ZcXi'></center></pre></bdo></b><th id='7ZcXi'></th></span></q></dt></tr></i><div id='7ZcXi'><tfoot id='7ZcXi'></tfoot><dl id='7ZcXi'><fieldset id='7ZcXi'></fieldset></dl></div>

                  1. <small id='7ZcXi'></small><noframes id='7ZcXi'>

                  2. <legend id='7ZcXi'><style id='7ZcXi'><dir id='7ZcXi'><q id='7ZcXi'></q></dir></style></legend>

                    <tfoot id='7ZcXi'></tfoot>