javascript:删除文本中所选元素的标签

时间:2016-04-05 14:54:29

标签: javascript html text tags

我在我的textarea中为选定的元素添加了一个标记,每个标记都带有一个id。我将元素存储为一个表格。 但是,我想删除一些标签(我必须输入标签" ref" et" point")。我尝试了这个功能但是,它不起作用:

function deleteTag(textField, tag)
{
var scrollTop = textField.scrollTop;        //For the scroll of the text 
var start = textField.selectionStart;       //beginning of the selected text
var end = textField.selectionEnd;           //End of the selected text
var modif=textField.value.substring(start,end); //The text to modify
// Remove the tag
if(modif.match('[^<]'+tag+'id="(\\d+)">') && modif.match('</'+tag+'[>$]'))
{
    var regex;
    if(tag=="ref")
    {
         regex=new RegExp('<'+tag+' id="(\\d+)">');
         var opt=modif.match(regex)[1];
         document.getElementById("refList").remove(opt-1);
    }
    regex=new RegExp('<'+tag+'[^>]+>');
    modif=modif.replace(regex, "");
    modif=modif.replace('</'+tag+'>', "");
  }        
textField.value=textSup+modif+textInf;  //We modify the text inside the text area
textField.scrollTop=scrollTop;
}

按钮有这个代码:

<button onclick="deleteTag(textAreaId, 'ref')"> Effacer 

顺便说一下,我是javascript的初学者

1 个答案:

答案 0 :(得分:0)

if(modif.match('[^<]'+tag+'id="(\\d+)">') && modif.match('</'+tag+'[>$]'))

也许你需要在正则表达式中有一个额外的空间:

if(modif.match('[^<]'+tag+' id="(\\d+)">') && modif.match('</'+tag+'[>$]'))