2017-10-12 72 views
0

我需要一些幫助這裏關於replace也許rereplace與rereplace更換字體或更換

我試圖取代font-family:anythingfont-family:swiss7

,但如果有一個值font-family: BebasNeue;我想,字體不變,不增加字體大小,但字體大小添加到其它字體

我下面這個教程,但不知其不匹配,以什麼我需要實現

https://www.sitekickr.com/snippets/coldfusion/strip-css-styles

+0

你到目前爲止嘗試過什麼?你得到了什麼樣的結果?你在使用什麼版本的ColdFusion?你可以把CSS放到一個單獨的文件中嗎?等 –

回答

0

更新:以及我認爲這個問題更簡單。如果你想看到我的原始答案,只需看看這篇文章的編輯歷史。這個答案使用了類似的原則,儘管你在那裏搜索一個你不想刪除的項目,然後用replace替換它。

<cfset teststr1 = "font-family: BebasNeue;" /> 
<cfset teststr2 = "font-family: Verdana" /> 
<cfset teststr3 = "font-family: BebasNeue; font-family: Times New Roman; color: red" /> 

<cfset search1 = "(font-family:\s*)((BebasNeue)|[\w ]+)(;)?" /> 
<cfset replace1 = "font-family: \3swiss7\4" /> 

<cfset search2 = "BebasNeueswiss7" /> 
<cfset replace2 = "BebasNeue" /> 

<cfoutput> 
    <ol> 
    <li>#replaceNoCase(reReplaceNoCase(teststr1, search1, replace1, "all"), search2, replace2, "all")#</li> 
    <li>#replaceNoCase(reReplaceNoCase(teststr2, search1, replace1, "all"), search2, replace2, "all")#</li> 
    <li>#replaceNoCase(reReplaceNoCase(teststr3, search1, replace1, "all"), search2, replace2, "all")#</li> 
    </ol> 
</cfoutput> 

結果:

1. font-family: BebasNeue; 
2. font-family: swiss7 
3. font-family: BebasNeue; font-family: swiss7; color: red 

所以基本上你替換與所選擇的字體類型的所有字體系列,在這種情況下swiss7,但通過在更換小組選擇你離開BebasNeue中的字體串。然後再執行一個步驟清理留下的組合字體名稱。

+0

剛剛意識到我誤解了這個問題。現在調整答案 –

+0

已更新答案,實際回答問題 –

+0

似乎正在解決問題,但它沒有考慮到如果我只需要添加其他樣式僅適用於使用swiss7的字體樣式,請考慮使用字體 - 大小,字體重量 – Avin

-1

我會建議一個更易於維護的方法: if !findNoCase(styleString, 'BebasNeue'){ styleString = REReplace(style, 'font-family:[^"|^;]*', "font-family:swiss7; font-size:12", "ALL"); }

這應該得到你想要的你是後:別去碰它,如果它是BebasNeue,行吟詩人rwise,將font-family更改爲swiss7並添加字體大小。但是,正則表達式新手無法理解正在發生的事情也並非如此複雜。

+0

Downvoted,因爲這不考慮多個'font-family'的混合。在檢查font-family值之後,最小方法將是一個正則表達式組捕獲並替換每個捕獲的組。 – Alex

+0

@Alex我明白你在說什麼,除非「font-family:BebasNeue;」,否則字面上的要求是「font-family:任何對於font-family:swiss7」。 「;」在例外情況下表示BebasNeue必須被指定爲唯一的字體。使用我的建議將多個字體列表替換爲「swiss7」。 –

+0

他正在替換整個css/html文件的內容。檢查他提到的鏈接。一個簡單的替換/ reReplace在這裏是不夠的,因爲他需要一個[正則表達式匹配器](https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html)。 – Alex