2017-03-09 27 views
0

我想知道是否可以保留某些值,並刪除其他定期擴展。如何在正則表達式上保留值並移除其他(屬性html字符串)?

我有這樣的代碼:

var str = '<td class="sky" data-toggle="up" id="heaven" > Link to heaven </td>'; 

var res = str.replace(/(data-toggle=")([a-zA-Z0-9:;\.\s\(\)\-\,]*)(")/gi, ''); 

console.log(res); 

我的結果是如下:

<td class="sky" id="heaven" > Link to heaven </td> 

我想期待這樣的結果(逆):

<td data-toggle="up" > Link to heaven </td> 
+2

[!** ** DONT(http://stackoverflow.com/a/1732454/1048572) – Bergi

+0

AAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHHHhhHHHHAAAAAAAAAAAAAAAAAHHHHHHHHHHAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH – JSelser

+0

什麼關於更多的屬性,或者只是需要保持屬性「數據切換」? – Kerwin

回答

1

see

var str = '<td class="sky" data-toggle="up" id="heaven" > Link to heaven </td>'; 
 

 
var res = str.replace(/(<\w+)(\s*[\w-]+="[^"]+")*(\s*data-toggle="[^"]+")(\s*[\w-]+="[^"]+")*(\s*>)/g, '$1$3$5'); 
 

 
console.log(res);

+0

我在此爲兩個代碼,'(<\ W +)(\ S * [\ W - ] + = 「[^」] + 「)*(\ S *數據肘節=」[^ 「] +」) (\ S * [\ W - ] + = 「[^」] + 「)*(\ S *的數據目標=」[^ 「] +」)(\ S * [\ W - ] + =「[^ 「] +」)*(\ s *>)'$ 1 $ 3 $ 5 $ 7,我不想貪心我的問題,非常感謝@Kerwin。 – Tabares

0

然後,此處您的要求是用新屬性設置替換TD元素的所有現有屬性設置data-toggle="up" ,對嗎? 如果是這樣,也許你可以使用下面的正則表達式。
查找:<td .+?>(.+)</td>
替換:<td data-toggle="up" >\1</td>

相關問題