2016-03-03 55 views
0

我的問題是,我不能讓代碼刪除周圍文字商標標籤,並用相同的大寫字守在那裏。這裏是我的代碼:正則表達式替換器不工作

function removeMark(tagName, Color) { 
    var tagNameC = tagName.toUpperCase(); 
    var IndAry = tags.indexOf(tagNameC); 
    tags.splice(IndAry, 1); 
    var Notes = document.getElementById("NoteHolder").innerHTML; 
    var MarkBack = new RegExp("/b" + tagName + "/b", "gim") 
    var MarkBackTo = "<mark class=" + Color + ">" + MarkBack + "</mark>" 
    var AfterRep = Notes.replace(MarkBackTo, "$1"); 
    document.getElementById("NoteHolder").innerHTML = AfterRep; 
    var list = document.getElementById("myList"); 
    var idmarker = "MarkID" + tagName; 
    var ElementID = document.getElementById(idmarker); 
    MarkList.removeChild(ElementID); 
} 

tagName是標記內部的單詞標記。標記標記有一個恆定的類,但裏面的字可能並不總是由於大寫。通過輸入輸入tagNameColor。 我猜測它與正則表達式做,因爲我不知道很多關於它,我無法找到什麼毛病我的JavaScript。如果任何人都可以看到發生了什麼問題,這將非常有幫助!

+0

'新的RegExp( 「\\ B」 +標籤名+ 「\\ B」, 「GI」)' –

+0

@WiktorStribiżew不工作 – Hawkeye

+0

你能解釋一下你試圖用樣本輸入文本和所需輸出的幫助。說這是我的字符串,例如'<標記類=「COLOR」>內容'並註明所需輸出 – Saleem

回答

1
var input = '<mark class="color">coTNeNt</mark>' 
var reg = /<([\w]+)[ \w=\"]+>([\w]+)<\/\1>/g 
input.replace(reg, '$2') 

輸出:"coTNeNt"

+1

只有@Hawkeye YelColBox:'/ <([\ W] +)類= 「YelColBox」>([\ W] +)<\/\1>/g' – Nate

+1

@Hawkeye決不BluColBox,但總是任何其他顏色:'/ <([ \ W] +)類= 「(?!BLU)[AZ] [AZ] {2} ColBox」>([\ W] +)<\/\1>/g' – Nate