2015-10-16 45 views
-2

這是我的代碼:我可以正常顯示的字符,而不是正則表達式

$scope.currentTextClass = $scope.currentText1.replace(
    test5 = /<img .* \/>/g, 
    "<div class=\"container\">" + test5.source + "</div>" 
); 

test5.source字符串爲"<img .* \/>"。我想要的是完整的img標記,而不是原始正則表達式。

是否可以返回原始img標記?

+1

你的問題沒有引起太大的意義,請嘗試重寫它,並解釋這個問題 – Elena

+2

@Elena我剛剛回答了這個問題,因爲它非常有意義。如果有幫助,我已編輯該問題以添加一些額外的格式。 –

回答

2

問題是您的正則表達式的<img .* \/>。所有source返回值是沒有/ s或標誌(在這種情況下爲g)的正則表達式。

source屬性返回一個包含正則表達式對象的源文本的字符串,並且它不包含兩邊和任何標誌的兩個正斜槓。

—​​

如果您要訪問的全場比賽,你可以提供一個功能你replace調用的第二個參數。這本身有3個參數傳遞給它:匹配,匹配的位置和全文。

第一個參數是你想要的這裏:

$scope.currentTextClass = $scope.currentText1.replace(
    /<img .* \/>/g, 
    function(match) { 
     return "<div class=\"container\">" + match + "</div>"; 
    } 
); 
+0

非常感謝!你不知道我一直在爲這個問題苦苦掙扎多久,而且我甚至有問題要問,這是我第三次發佈一個問題,因爲人們討厭。你會得到很多讚揚! – SjaakvBrabant

+1

@Goldenowner不用擔心。我認爲downvoted這個的人對RegExp對象的原型屬性可能沒有太大用處,並且被你使用'test5.source'弄糊塗了。 –

相關問題