2013-07-11 62 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