【发布时间】:2014-06-17 09:13:54
【问题描述】:
我正在尝试将货币字符串转换为数字。我正在使用带有正则表达式的替换函数,我之前在类似的上下文中成功使用过该函数。
货币字符串在此处被捕获,是“each”循环的一部分:
var unitGridPrice = jQuery(this).find(".clsPriceGridDtlPrice").html();
结果是 unitGridPrice 是一个货币字符串,类似于“$2.75”。我正在尝试将其转换为数字:
var priceToConvert = unitGridPrice;
var unitGridPriceNo = Number(priceToConvert.replace(/[^0-9\.]+/g, ''));
但是,在最后一行到位后,脚本将不会运行。
如果我使用 priceToConvert 的值,它会正确显示货币文本字符串,所以我相信提供替换函数的字符串是正确的。
如果我将“var priceToConvert = unitGridPrice”更改为“var priceToConvert = “$2.75”,脚本会正确返回 2.75。我可以将 unitGridPrice 显示的值复制并粘贴到我正在测试的文本字符串中,并且它可以工作,但是有了变量,脚本就会死掉。
我已经尝试删除正则表达式,将替换更改为 .replace('$', '') 并且脚本再次停止并使用变量,但如果我使用固定字符串进行测试,则可以工作。
我真的很难过。帮助??!!谢谢!!!
【问题讨论】:
-
脚本死了是什么意思?你有任何错误吗?
-
console.log(unitGridPrice)告诉你什么? -
脚本未完成,我收到错误“priceToConvert is null”我尝试使用“String”函数(抓住稻草)强制 jQuery 调用的输出,错误消息更改为“未定义字符串”。在相同的代码中,如果我删除替换函数并将 unitGridPrice 分配给变量“priceToConvert”,我会得到我想要转换的字符串。莫名其妙。我需要睡在这个上面。
-
我再次尝试添加“String”函数来验证错误消息,但现在代码按预期工作。呜呜! (我想)我晚上把它关了,想看看明天会发生什么。希望在我完成这个小项目时它仍然有效。感谢您的帮助,感谢您对可能发生的事情的任何其他见解。
标签: javascript jquery replace