在javascript中替换一些字符串

时间:2015-03-22 18:15:51

标签: javascript jquery jquery-ui

var x="45ab6eb6f099e866a97a10famount%5D=7.00";

我需要替换amount%5D=之后的值。即我需要制作...amount%5D=56.00等。

主要的是amount%5D之前和之后的字符串总是在变化。

即。它可能是

sdd45ab6eb6f099e866a97a10famount%5D=4.00
gdfgdtgtrrtamount%5D=3.00

2 个答案:

答案 0 :(得分:2)

有几种方法可以做到这一点:

1:正则表达式:

x.replace(/(.+%5D=).+/, '$1' + yourNewValue);

2:字符串拆分:

var parts = x.split('%5D=');
var newString = parts[0] + '%5D=' + yourNewValue;

答案 1 :(得分:0)

一个简单的解决方案是使用replace(regExp, 'replacement')。下面是一个快速示例,说明如何使用与模式/amount%5D=[0-9]+.[0-9]+/匹配的正则表达式为x和x1执行此操作。

// test with first variable
var x="45ab6eb6f099e866a97a10famount%5D=7.00";
var y = x.replace(/amount%5D=[0-9]+.[0-9]+/, "amount%5D=235.00");
console.log(y)
var y = x.replace(/amount%5D=[0-9]+.[0-9]+/, "amount%5D=12.00");
console.log(y)
var y = x.replace(/amount%5D=[0-9]+.[0-9]+/, "amount%5D=11.00");
console.log(y)

// test with new variable
var x1="dsf45ab6eb6f099e866a97amount%5D=7.00";
var y = x1.replace(/amount%5D=[0-9]+.[0-9]+/, "amount%5D=235.00");
console.log(y)
var y = x1.replace(/amount%5D=[0-9]+.[0-9]+/, "amount%5D=12.00");
console.log(y)
var y = x1.replace(/amount%5D=[0-9]+.[0-9]+/, "amount%5D=11.00");
console.log(y)

输出

45ab6eb6f099e866a97a10famount%5D=235.00
45ab6eb6f099e866a97a10famount%5D=12.00
45ab6eb6f099e866a97a10famount%5D=11.00
dsf45ab6eb6f099e866a97amount%5D=235.00
dsf45ab6eb6f099e866a97amount%5D=12.00
dsf45ab6eb6f099e866a97amount%5D=11.00

您可能对正则表达式有更多限制(例如,只允许2个小数位)。此表达式仅用于说明目的。