2013-07-24 36 views
2

我的影片结构为这样的字符串:如何使用正则表达式更改此值?

"http://mydomain.com/?i=0" 

我希望能够在JavaScript中使用正则表达式来改变i的价值,但我不知道该怎么做。有人能够帮助吗?

+0

是初始值总是将是数字?如果是这样,可能的范围是什么? – StephenTG

+0

另外,如果它始终与数值相同,那么使用子字符串可能会更容易 – StephenTG

+1

并且您是否可以控制用作替换变量的内容? “我”是一个非常糟糕的,是非常常用的...例如,一个正则表达式可以很容易地替换“域”中的“我”以及你的查询字符串... –

回答

2
"http://mydomain.com/?i=0".replace(/i=.*$/, 'i='+<newValue>); 

,如果你需要,以应付额外的参数如下i使用

"http://mydomain.com/?i=0&j=k".replace(/i=[^&]+/, 'i='+<newValue>); 

a fiddle to demonstrate it

+0

该正则表达式也将取代任何在'i'参数后传入的附加参数。 – Tro

+0

@Tro:这是正确的,请参阅已编辑的rsponse的解决方案 – collapsar

+0

这应该有效。只是想知道它是否会作为空传递(即http://mydomain.com/?i&j=k) – Tro

3

这里是一个开始的地方:

str = "http://mydomain.com/?i=0"; 
str = str.replace(/((?:\?|&)i=)([^&]*)/g, '$1foo'); 
+0

这将会替换'?'字符。 – talemyn

+1

@talemyn - 好,赶快,谢谢。 –

+1

您可能还想在开头添加'str =',因为替换实际上不会实际更改'str'值。 ;) – talemyn

0

例子:

var str = "http://mydomain.com/?i=0"; 

var i=1; // or any other value (e.g. i="test") 
str = str.replace(/i=.*/, 'i='+i); 
alert(str); 
+0

参数可能不总是数字,OP尚未确认。 – Tro

+0

那么,这些例子说明:'http://mydomain.com/?i = 0'。对我来说似乎相当数量。 –

+0

这可能适用于这个例子,但是如果给定一个字符串,也不适用于浮点数或负整数,这两种情况都可能发生,直到我们更了解他的情况为止。 – Tro

相关问题