我需要一種方法只<br>
的Javascript正則表達式用引號
我用正則表達式一個完整的新手,以取代<br class="">
悉數亮相,但我想:
str = str.replace(/<br\sclass=\"\"\s>/g, "<br>");
,並沒有奏效。
什麼是適當的正則表達式來做到這一點?
我需要一種方法只<br>
的Javascript正則表達式用引號
我用正則表達式一個完整的新手,以取代<br class="">
悉數亮相,但我想:
str = str.replace(/<br\sclass=\"\"\s>/g, "<br>");
,並沒有奏效。
什麼是適當的正則表達式來做到這一點?
我不會使用正則表達式來做到這一點,而是實際上解析html和刪除類。 這是未經測試的,但可能有效。
// Dummy <div> to hold the HTML string contents
var d = document.createElement("div");
d.innerHTML = yourHTMLString;
// Find all the <br> tags inside the dummy <div>
var brs = d.getElementsByTagName("br");
// Loop over the <br> tags and remove the class
for (var i=0; i<brs.length; i++) {
if (brs[i].hasAttribute("class")) {
brs[i].removeAttribute("class");
}
}
// Return it to a string
var yourNewHTMLString = d.innerHTML;
獲取/設置/是的removeAttribute Buggy在各種構建IE的和最好避免。需要修改'className' DOM屬性。 – 2011-08-03 17:52:57
這是一個更好的解決方案,謝謝。 – Jesse
在Opera 11中很棒。在IE6中爆炸。 – ridgerunner
\s
恰好匹配一個空格字符。你可能想要\s*
,它將匹配任何數字(包括零)的空格字符,並且\s+
,它們將至少匹配一個。
str = str.replace(/'<br\s+class=\"\"\s*>/g, "<br>");
一種方法是使用下面的
var s = '<br class="">';
var n = s.replace(/(.*)(\s.*)(>)/,"$1$3");
console.log(n)
要做到這一點,爲什麼呢?一個空的'class'屬性不會傷害。 –
你幾乎有它:'STR = str.replace(/
/克, 「
」);' – ridgerunner