【问题标题】:How can I convert this short PHP function into JavaScript? [closed]如何将这个简短的 PHP 函数转换为 Javascript? [关闭]
【发布时间】:2013-01-17 08:41:49
【问题描述】:

如何将此 PHP 代码复制到 Javascript 中?它需要一个像 2-9999(序列号)这样的数字并将其转换为 NUMBER ... 2-999 转换后将是一个不同的值。

function esn_to_num($esn)
{

    if (($tmp = explode('-', $esn))) {

        if (sizeof($tmp) == 2
            && my_isnum($tmp[0])
            && my_isnum($tmp[1])
        ) {
            $esn = (($tmp[0] << 23) | $tmp[1]);
        } else {
            $esn = -1;
        }
    } else {
        $esn = -1;
    }

    return $esn;
}

我在下面添加了一个依赖函数

// dependency function
    /*****************************************************************************
    * CHECKS IF A STRING REPRESENTS A NUMBER
    ******************************************************************************/
    function my_isnum($str, $negative=false, $decimal=false)
    {
        $has_decimal = false;
        $len = strlen($str);
        if ($len > 0) {
            $valid = true;
            for ($i=0; $valid && $i<$len; $i++) {
                if (!($str[$i] >= '0' && $str[$i] <= '9')) {
                    if ($str[$i] == '-') {
                        if (!$negative || $i != 0) {
                            $valid = false;
                        }
                    } else if ($str[$i] == '.') {
                        if (!$decimal || $has_decimal) {
                            $valid = false;
                        }
                    } else {
                        $valid = false;
                    }
                }
            }
        } else {
            $valid = false;
        }
        return $valid;
    }

【问题讨论】:

  • 什么是my_isnum?另外,你试过什么?

标签: php javascript javascript-events php-5.2


【解决方案1】:

php 语法与 JS 非常相似。

只需获取变量并删除$,并使用var 关键字声明它们。

function esn_to_num(esn) {
    var tmp = [];
    if ((tmp = explode('-', $esn))) {
        if (sizeof(tmp) == 2
            && my_isnum(tmp[0])
            && my_isnum(tmp[1])
        ) {
            esn = ((tmp[0] << 23) | tmp[1]);
        } else {
            esn = -1;
        }
    } else {
        esn = -1;
    }
    return esn;
}

然后您需要将所有 php 函数替换为等效的 JS 函数。查找“explode、sizeof 的 JavaScript 等效项。

按照同样的流程用javascript重写my_isnum(显然不是原生php函数)。

编辑:看到您的更新后,我意识到 Stack Overflow(或其他地方)上可能已经有一大段代码,这将与 my_isnum 一样。搜索“js 函数以确定字符串是否为数字”或在此处单独提问。

您可以在 chromes javascript 控制台中完成所有这些操作,并不断迭代,直到您不再出现错误。如果您遇到特定问题并被卡住,最好在 Stack Overflow 上询问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-01
    • 2020-10-17
    • 2022-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 2016-12-24
    相关资源
    最近更新 更多