2016-03-03 5 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 - это слово внутри метки. Знаки меток имеют класс, который является константой, но слово внутри не всегда может быть связано с капитализацией. Я вводил tagName и Color через вход. Я предполагаю, что это связано с регулярным выражением, поскольку я мало знаю об этом, и я не могу найти что-то не так с моим javascript. Если кто-то может понять, что происходит не так, это будет очень полезно!

+0

'нового RegExp ("\\ Ь" + тэгу + "\\ Ь", "Г")' –

+0

@ WiktorStribiżew Не работает – Hawkeye

+0

Можете ли вы объяснить, что вы пытаясь сделать это с помощью образца ввода текста и желаемого вывода. скажем, это моя строка, например. ' content' и укажите желаемый результат – Saleem

ответ

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

Выход: "coTNeNt"

+1

@Hawkeye Only YelColBox: '/ <([\ w] +) class =" YelColBox "> ([\ w] +) <\/\1>/g' – Nate

+1

@Hawkeye Никогда BluColBox, но всегда любой другой цвет:'/<([ \ w] +) class = "(?! Blu) [AZ] [az] {2} ColBox"> ([\ w] +) <\/\1>/g' – Nate

Смежные вопросы