2016-07-31 56 views
-1

所以,我有這個長的申請表格,我在聯繫表單7插件WordPress上做的。 的標籤是這樣的:移動一塊字符串

[text text-758 "Building name"] 

,我犯了一個錯誤:我忘了添加標籤。它應該是這樣的:

<label>Building name[text text-758]</label> 

現在我不得不在所有的應用程序的變化。 我的問題(我是JavaScript的初學者):我可以寫一個腳本來爲我做這個嗎? 我寧願學習用普通的JavaScript代替Jquery。 也許正則表達式會有幫助嗎?和insertBefore()? 我想在我的控制檯中執行此操作,或者說... codepen。 沒有id或類,只是一個很大的「字符串」。 我被卡住了。

+2

解決最初的問題在頁面渲染得到前。在整個頁面中使用javascript進行文本置換不是一個好主意 – RomanPerekhrest

+1

我還沒有發佈頁面。我只想複製整個事情並編寫一個腳本,該腳本在控制檯或codepen中運行,然後僅在發佈結果後複製結果。 – teyi

回答

0

正如在評論中提到羅馬,你應該可以解決來源,而不是應用客戶端補丁。

也就是說,你可以在本地使用Javascript修復源代碼 - 雖然Node.js可能是這種批處理作業的更好選擇。

注:.insertBefore()是DOM操作方法。不是字符串操作方法。這就是爲什麼你的問題不明確。

var str = 
 
    'Hello World! [text text-758 "Building name"]' + 
 
    'This is a test. [text text-123 "Foo"]'; 
 

 
str = str.replace(
 
    /\[([a-z]+ [a-z]+-\d+) "([^"]+)"\]/gi, 
 
    "<label>$2[$1]</label>", 
 
    str 
 
); 
 

 
console.log(str);

+0

謝謝,它的工作原理,但這是一個文本字段。我對其他人做什麼?有30個文本字段與此類似。 – teyi

+0

它的工作原理!再次感謝你! – teyi

0

好了,你無論如何都應該解決您的標籤建築規範,但現在這件事情可以幫助:

var reg = /\[(.*)\s"(.*)"]/ 
    , test = '[text text-758 "Building name"]' 

test.replace(reg, '<label>$2[$1]</label>') // should return what you need 
+0

謝謝,它的工作原理,但我有30個相似的文本字段,我需要更改... – teyi

+0

使這些數組,並使用提供的正則表達式映射它們到你需要的形式,所以你最終得到正確的標籤塊數組 – Marcus

+0

哦男人,試圖做到這一點,但我有[]每個字符串內,有時兩次......我必須逃避他們? – teyi