2013-07-11 23 views
0

Mozilla's documentation on replace()显示可以使用的特殊参数。我想要做的是匹配一个字符串部分,然后使用部分匹配部分或部分进行处理。但是,我使用的是Chrome浏览器,我要么做得不正确,要么只是不支持它。如果Chrome不支持该方法:是否有另一种在替换中使用匹配的方法?替换()中的特殊参数JavaScript

下面是一个例子:

我有一个字符串“腊肉&#44鸡” 我想借此“&#44”,并得到公正的“44”,那么我希望把“44”后在替换字符串中。

答: 从DJDavid98的回答之后,我来到了我想要的东西"bacon &#44 chicken".replace(/&#(\d{2})/g, "$1")

+0

从MDN文档:'的方法与string.replace使用该标志的参数是非标准的。使用带有相应标志的RegExp对象,而不是使用此参数。 ' –

+0

正确,这意味着Google可能会有自己的非标准实现。 – Rhyono

+0

*可能*?你测试过了吗?你写道:**如果**铬不支持... –

回答

1

你可以使用.exec()方法上正则表达式,像这样:

/\&#(\d{2})/g.exec("bacon &#44 chicken") 

这将返回:

["&#44", "44"] 
+0

谢谢,那几乎是我想要的。我在剩下的路上找到了“培根&#44鸡肉”.replace(/&#(\ d {2})/ g,“$ 1”)' – Rhyono

+0

@Rhyono很高兴我能帮上忙,但在未来,请您的问题更清楚一点。有些人仍然感到困惑。 – SeinopSys

2

只要把国旗在你的正则表达式的结束......像/[^a-z]/g

+0

我喜欢你得到多少upvotes,但这不是我要找的。我会详细说明。直到我做:享受upvotes。 – Rhyono

+4

@Rhyono然后写出一个更清晰的问题。 – SeinopSys

+0

@ DJDavid98我做到了。 – Rhyono

0

您可以将标志放在正则表达式文本的末尾以便它们工作。

/myRegExp/gi

,你指的是在MDN网站是指下列语法片段: string.replace(stringToReplace, replacement, 'gi')

+0

您的回答不适用于此问题。 – Rhyono