replace(/\[(img)[^\[\]]*?\][^\[]*?\[\/\1\]/,'"')

解决方案 »

  1.   


    你好,应该是我说的不清楚,麻烦了。
    比如说有三个复选框ck1,ck2,ck3,值分别人
    有一个文本框txt,
    当我选中ck1把值加到txt后面,当我选中ck2把值加到txt后面,当我选中ck3把值加到txt后面........
    当我取消ck2时,对应的值从文本框里去除,当我ck1,ck3......时对应的又从里面删除,我想要的就是选择中对应的加进去,取消对应的则删除。
      

  2.   


    没有对应关系,可以是1,2,3或3,1,2的,我想是不是应该在replace(/\[(img)[^\[\]]*?\][^\[]*?\[\/\1\]/,'"') ,正则表达式里那填选中的值的规则?
      

  3.   


    不让插入空的img ubb代码,所以截的图
      

  4.   


    完整代码如下:<input type="checkbox" name="l_attr[]" value="http://a.com/1.jpg" onclick="insertAttr(this,1,this.value);" />
    <input type="checkbox" name="l_attr[]" value="http://a.com/c.jpg" onclick="insertAttr(this,1,this.value);" />
    <input type="checkbox" name="l_attr[]" value="http://a.com/BB.jpg" onclick="insertAttr(this,1,this.value);" />
    <textarea id="l_linecontent"></textarea>function insertAttr(ck,day,str){
    obj=get_obj("l_linecontent"+day);
    if (ck.checked==true){
    obj.value=obj.value+'[img='+str+'][img]';//最后一个img前面有一个“/”,不让插入
    }else{
    obj.value=obj.value.replace(/\[(img)[^\[\]]*?\][^\[]*?\[\/\1\]/,'') ;
    }
    }上面的替换是按照你的来的,现在的功能是当取消时,textarea里面删除的不是对应的,而是从第一个img开始的。
      

  5.   


    完整代码如下:<input type="checkbox" name="l_attr[]" value="http://a.com/1.jpg" onclick="insertAttr(this,1,this.value);" />
    <input type="checkbox" name="l_attr[]" value="http://a.com/c.jpg" onclick="insertAttr(this,1,this.value);" />
    <input type="checkbox" name="l_attr[]" value="http://a.com/BB.jpg" onclick="insertAttr(this,1,this.value);" />
    <textarea id="l_linecontent"></textarea>function insertAttr(ck,day,str){
    obj=get_obj("l_linecontent"+day);
    if (ck.checked==true){
    obj.value=obj.value+'[img='+str+'][img]';//最后一个img前面有一个“/”,不让插入
    }else{
    obj.value=obj.value.replace(/\[(img)[^\[\]]*?\][^\[]*?\[\/\1\]/,'') ;
    }
    }上面的替换是按照你的来的,现在的功能是当取消时,textarea里面删除的不是对应的,而是从第一个img开始的。改了一个textarea的ID为“<textarea id="l_linecontent1"></textarea>”
      

  6.   

    既然是添加删除txt中checkbox对应的value
      

  7.   

    如果想簡單一點,可以在每次操作checkbox后var htmls = [];
    $(':checkbox:checked').each(function() {
        htmls.push(this.value);
    });
    $(':text').val(htmls.join(''));
    不知道txt的值是否有分隔符,如果沒有可以直接txt.value = txt.value.replace(checkbox.value, '');如果有分隔符,如‘,’txt.value = txt.value.replace(checkbox.value, '').replace(/(^,+|,+$)/,  '').replace(/,+/, ',');