如何在 JavaScript 中抑制前导 0 以生成格式正确的 URL?(所有尝试都生成了 typedef 错误)
how to suppress leading 0 in javascript to generate properly formatted url? (all attempts have generated typedef errors)
我正在形成一个URL,该URL不能在填充距离的dist GET参数中使用前导零[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>";
在此生成的链接打印距离 [i] 时,前导为 0,然后在数字小于零时打印小数点,例如"...&dist=0.6..." 这反过来又会导致我使用此表达式生成的 postgresql 调用出错。我尝试了以下所有方法,要么从数字中删除前导 0,要么将数字显式转换为数字,希望这会抑制前导零:
var dis = distance[i]
...following by any of these....
var disNN = dis.replace("0", ""); //there will only be 0's in the lead, I know all submitted values, so this expression won't cause other problems
var disNN = dis.replace(/^0+/, '');
var disNN = number(dis)
当包含在我的代码中时,其中任何一个都会生成以下错误:
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]是如何实例化的;但我的猜测是它是一个整数,而不是一个字符串,所以它没有任何内置的字符串函数(如.replace)。
你可以试试这个:
var dis = distance[i].toString();
请注意确保距离[i]不为空,否则'toString失败,你又回到了sqaure。
我会使用 php 函数 ltrim 删除前导零,并将格式良好的距离传递给生成 url 的 JavaScript。
用法:
$str = ltrim($str, '0');// Remove leading 0's
echo ltrim(00000.1, '0');// echoes .1
相关文章:
- CKFinder 3为所选文件返回错误的URL
- 如何解决“;错误所请求的URL返回500-内部服务器错误”;
- Ajax对web URL的调用导致javascript错误
- 类型错误:url未定义extjs 4正在填充组合框
- javascript window.location在检查firebug时给了我一个错误的url路径
- 使用EaselJS位图时捕获错误的URL
- 模版启动错误-类型错误(“参数”url'必须是字符串,而不是“+类型的url”)
- 不带“”的自定义URL;无法打开“;错误
- $http GET URL更改并查找错误的资源
- 如果URL's链接返回错误
- 未捕获的类型错误:$(..).modal不是具有远程url的函数
- 为什么即使两个 URL 都来自 XXXX.com,我仍然会收到 405 错误
- 会话过期URL错误
- 修复Javascript中常见的URL错误
- $.getJSON在Knockout.js中的URL错误
- XMLHttpRequest错误格式化URL-错误405
- 从远程url错误中获取主干集合
- 部署时自定义操作url错误:部署步骤中发生错误
- 未知的Ajax URL错误
- 当通过文件传输发送时,从相机发送的图像URL错误