将数据剥离为数字和小数,然后将jquery设置为输入值为变量

时间:2014-04-23 23:03:05

标签: javascript jquery

我从加密的php脚本中获取数据,该脚本输出变量,例如: %%Price%%

令人讨厌的是,这些变量不仅仅是小数和数值。

加密脚本将%%Price%%呈现为:

<font color="green"><strong>Sale Price: $2,489.99</strong></font>

我想将%%Price%%的值剥离到价格(数字和小数),然后将该结果作为值放在隐藏的表单字段中。

我试过了:

<form id="add-to-cart">
    <input type="hidden" name="price" id="price" value=""/> 
    <button type="submit">  Review & Order</button> 
</form>

<script>
var price = "%%Price%%";
var newPrice = price.replace(/[^0-9\.]/g, '');
jQuery("#price").val(newPrice);
</script>

...但是这会给出一个空结果

2 个答案:

答案 0 :(得分:0)

我会用:

newPrice = parseFloat(price.substring(2, price.length - 3));

答案 1 :(得分:0)

我用jsfiddle检查了你的代码,看起来没问题。点击此处:http://jsfiddle.net/CmHn6/1/。我实际上换了:

var price = "%%Price%%";

使用:

var price = '<font color="green"><strong>Sale Price: $2,489.99</strong></font>';
正如你在你的例子中所说的那样。请注意,我在那里使用了单引号。如果您的加密脚本没有考虑到这一点,那么您的行可能最终会像:

var price = "<font color="green"><strong>Sale Price: $2,489.99</strong></font>";

会导致语法错误,并且不会填充您的输入元素。 如果你的字符串从不使用单引号,那么你可以在代码中使用单引号,就像在我的例子中一样。 如果没有,您可以将%% Price %%放入隐藏的div中,并从那里读取该值:

<div id="pricediv" display="style: none">%%Price%%</div>
<form id="add-to-cart">
    <input type="hidden" name="price" id="price" value=""/> 
    <button type="submit">  Review & Order</button> 
</form>

<script>
var price = $("#pricediv").html();
var newPrice = price.replace(/[^0-9\.]/g, '');
jQuery("#price").val(newPrice);
</script>