使用JavaScript的replace方法来替换字符串中的数字?

3

我有一个字符串

var x='abcdefg1234abcdefg';

我想使用x.replace()函数将1234替换为555,如下所示:
x=x.replace(stuff here)

我尝试将'1234','555'作为参数传递,但没有起作用。有什么线索吗?谢谢。
编辑: 字符串在隐藏的<input>字段中。它的值是:
<object id="player" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" name="player" width="400" height="385">
 <param name="movie" value="player.swf" /> <param name="allowfullscreen" value="true" />
 <param name="allowscriptaccess" value="always" />
 <param name="flashvars" value="provider=http&file=files/videos/10.file" />
 <embed type="application/x-shockwave-flash" src="player.swf" width="400" height="385" allowscriptaccess="always" allowfullscreen="true" flashvars="provider=http&file=files/videos/10.file&image=preview.jpg"/>
</object>

我希望将宽度和高度的值替换为存储在sb_widthsb_height中的值。


5
你能否确切地列出你尝试过的内容? - Oded
3个回答

9

您所描述的应该是可以正常工作的:

var x = 'abcdefg1234abcdefg';
x = x.replace('1234', '555');
alert(x); // alerts abcdefg555abcdefg

请注意,当给定一个字符串时,replace方法只会替换第一个匹配项。若要替换多个匹配项,请使用带有g标志(代表“全局”)的正则表达式:

var x = 'abcdefg1234abcdefg1234xxx';
x = x.replace(/1234/g, '555');
alert(x); // alerts abcdefg555abcdefg555xxx

Live example


是的,我正在寻求正则表达式,因为该值分散在整个字符串中... - Rami Dabain
谢谢,它起作用了 :)。我只是在双引号内使用了正则表达式,例如"/1234/i",并使用了I而不是G...再次感谢 - Rami Dabain
@Ronan:很高兴能帮上忙,但是不需要双引号,直接使用正则表达式即可(如果有偏好的话)。 - T.J. Crowder

0
以下代码可行,现在已尝试:
var bla='dfasfdas123dfasfas';
alert(bla.replace('123','555'));

尝试在Firebug或其他工具中进行调试了吗?请提供您正在尝试的精确代码片段。


0

好的,这根本不是字符串替换。你希望使用jQuery吗?

$("$player").attr("width", sb_width);
$("$player").attr("height", sb_height);

$("$player").children("embed").attr("width", sb_width);
$("$player").children("embed").attr("height", sb_height);

在这里,字符串替换并不是正确的方式。您需要硬编码初始值,否则可能会替换意外相似的字符串,代码不能真正传达您的意图(更改高度/宽度,而不是操作字符串)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接