如何抑制javascript中的前导0以生成格式正确的url?(所有尝试都产生了typedef错误)

如何抑制javascript中的前导0以生成格式正确的url?(所有尝试都产生了typedef错误),javascript,php,postgresql,Javascript,Php,Postgresql,我正在形成一个URL,它不能在dist GET参数中用distance[I]填充前导零 trr2.innerHTML= "<b><a href='join.php?id="+idO[i]+"&dist="+distance[i] +"&category="+category[i]+"&min="+min[i]+"&max="+max[i]+"'>Join this deal</a>"; 其中任何一个包含在我的代码中时,都会生成

我正在形成一个URL,它不能在dist GET参数中用distance[I]填充前导零

trr2.innerHTML= "<b><a href='join.php?id="+idO[i]+"&dist="+distance[i] +"&category="+category[i]+"&min="+min[i]+"&max="+max[i]+"'>Join this deal</a>";
其中任何一个包含在我的代码中时,都会生成以下错误:

Uncaught TypeError: undefined is not a function
这看起来应该很简单……对于介于0和1之间的值,如何去掉前导零

此外,通过以下调用从php生成数组:

var distance = <?php echo json_encode($distance);?>;

以防万一。谢谢您的建议。

诀窍就在您看到的消息中

Uncaught TypeError: undefined is not a function
我不太确定距离[I]是如何被实例化的;但我的猜测是它是一个int,而不是一个字符串,所以它没有任何内置的字符串函数,比如.replace

你可以试试这个:

var dis = distance[i].toString();

请注意确保距离[i]不为null,或者“toString失败,您返回到sqaure one”。

我将使用php函数删除前导零,并将格式良好的距离传递给生成URL的javascript

用法:

$str = ltrim($str, '0');// Remove leading 0's
echo ltrim(00000.1, '0');// echoes .1

问题源于json将echo语句编码为javascript。数组在php中是数字的-如果我从php打印数组,则没有前导零。据我所知,如果您使用json_encode.1,它将输出.1个hanks以供后续使用。我不知道还发生了什么。在json将数组编码为javascript之前,我在数组上进行了打印,结果显示没有前导零。唯一的其他代码是我在问题中粘贴的。你是对的。非常感谢,但我不得不向宇宙发出抱怨,特别是js在一开始是数字类型的情况下添加了前导零!
$str = ltrim($str, '0');// Remove leading 0's
echo ltrim(00000.1, '0');// echoes .1