【问题标题】:Javascript "Replace" not working on string returned via jQueryJavascript“替换”不适用于通过 jQuery 返回的字符串
【发布时间】: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


【解决方案1】:

不久前,我在尝试从字符串中获取数字时也遇到了一些问题。问题是正则表达式,所以我像下面的代码一样更改了正则表达式。

var id = element.name.replace ( /[^\d.]/g, '' );
上面的

element.name 类似于 input_21、input_22 等,我只想得到数字(21,22)。 希望它可以帮助你。 :)

【讨论】:

    猜你喜欢
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-04
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多