鄙人最新作JS为数据添加标签解析标签

// JavaScript Document /** *封装标签 *解封装标签 *[cn]中文[/cn] *[en]英文[/en] **/ var judgeTag=function(str,tagName){//判断是否含有tag标签 var _result=false; var _reg="\["+tagName+"\][^\[\/"+tagName+"\]]*"; //alert(_reg); //alert(str+' and '+str.match(_reg)); if(str.match(_reg)){ _result=true; } //alert(str+' '+tagName+' '+_result); return _result; } var markTag=function(str,tag){//添加标签 //alert('测试'); var newStr='['+tag+']'+str+'[/'+tag+']'; return newStr; } var getValueByTagStr=function(str,tagName){//获得标签中的值 //alert(str); //alert(str+' '+tagName); if(!judgeTag(str,tagName)){ throw new Error('错误,该字符串不含有该标签!'); } var regex = "\\["+tagName+"\\]([^\\[]*)\\[/"+ tagName +"\\]"; var oRegex = new RegExp(regex,'ig'); //var reg=eval('/\\['+tagName+'\\](.+?)\\[\\/'+tagName+'\\]/i'); var m=oRegex.exec(str); return m[1]; } var markTagObj={ config:{}, replaceValue:{},//替换函数 mark:function(data){//打标函数 //alert(data.length) var i,markType,replaceFunc,newVal; for(i in data){ if (data.hasOwnProperty(i)){ //alert(data[i]); markType=this.config[i];//标签名或者类型en,cn if(!markType){ throw new Error('请指定标签名'); } //alert(markType+' and '+data[i]); //alert(data[i]); /*if(!judgeTag(data[i],markType)){ */ newVal=markTag(data[i],markType);//获得打标后的值 if(this.replaceValue[i]){//如果存在替换函数则替换 replaceFunc=this.replaceValue[i]; replaceFunc(newVal); }//if //}//如果不含有该标签 } }//for }//mark }//markTag /** 调用方法 var data={ name:$('input[name=name]').val(), subName:$('input[name=subName]').val() } markTagObj.config={ name:'en', subName:'cn' } markTagObj.replaceValue={ name:function(newVal){ $('input[name=name]').val(newVal); }, subName:function(netVal){ $('input[name=subName]').val(newVal); } } markTagObj.mark(data); **/ var decodeTagObj={//解析标签 config:{}, initData:{}, decodeMark:function(data){//解析函数 var i,markType,newVal; for(i in data){ if (data.hasOwnProperty(i)){ markType=this.config[i]; if(!markType){ throw new Error('错误,请指定要获取的标签'); } //alert(data[i]); newVal=getValueByTagStr(data[i],markType);//获得标签中的值 if(this.initData[i]){//如果存在替换函数则替换 this.initData[i](newVal); } }//if }//for }// }//decodeTag var mergeVal=function(s){ var _newS=''; for(var i=0;i<s.length;i++){ _newS+=s[i]; } //alert(_newS); return _newS; } var mergeForm=function(formList){//合并表单 for(var i=0;i<formList.length;i++){ var _sources=formList[i]['source']; var _targetFunc=formList[i]['target']; _targetFunc(mergeVal(_sources));//调用合并函数 }//for }

调用方法一



// JavaScript Document $(document).ready(function(){ var dataObj={ title:$('input[name=title]').val(), titleEn:$('input[name=title]').val(), brief:$('textarea[name=brief]').val(), briefEn:$('textarea[name=brief]').val() } decodeTagObj.config={ title:'cn', titleEn:'en', brief:'cn', briefEn:'en', } decodeTagObj.initData={ title:function(newVal){ $('input[name=title]').val(newVal); }, titleEn:function(newVal){ $('input[name=title_en]').val(newVal); }, brief:function(newVal){ $('textarea[name=brief]').val(newVal); $('textarea[name=brief]').text(newVal); }, briefEn:function(newVal){ $('textarea[name=brief_en]').val(newVal); $('textarea[name=brief_en]').text(newVal); } } decodeTagObj.decodeMark(dataObj);//解析标签 /************************/ });
调用方法二


// JavaScript Document /******配置标签选项*****/ $(document).ready(function(){ //$('textarea[id=description]').val('[cn]我的一个测试[/cn]') markTagObj.config={ title:'cn', titleEn:'en', brief:'cn', briefEn:'en', } markTagObj.replaceValue={ title:function(newVal){ $('input[name=title]').val(newVal); }, titleEn:function(newVal){ $('input[name=title_en]').val(newVal); }, brief:function(newVal){ $('textarea[name=brief]').val(newVal); }, briefEn:function(newVal){ $('textarea[name=brief_en]').val(newVal); } } /************************/ $("form").live("submit",function(){ //alert($('textarea[id=description]').val()); //alert('测试'); var doms = $(".require"); var check_ok = true; checkOk=true; $.each(doms,function(i, dom){ if($.trim($(dom).val())==''||$(dom).val()=='0') { var title = $(dom).parent().parent().find(".item_title").html(); if(!title) { title = ''; } if(title.substr(title.length-1,title.length)==':') { title = title.substr(0,title.length-1); } if($(dom).val()=='') TIP = LANG['PLEASE_FILL']; if($(dom).val()=='0') TIP = LANG['PLEASE_SELECT']; alert(TIP+title); $(dom).focus(); check_ok = false; checkOk=false; return false; } }); //alert(check_ok); if(!check_ok){ return false; } /***********/ var dataObj={ title:$('input[name=title]').val(), titleEn:$('input[name=title_en]').val(), brief:$('textarea[name=brief]').val(), briefEn:$('textarea[name=brief_en]').val() } /**********/ /***********/ markTagObj.mark(dataObj);//添加标签 /*alert($('textarea[id=description]').val()); alert($('textarea[id=description_en]').val());*/ var argcs=[ { source:[$('input[name=title]').val(),$('input[name=title_en]').val()], target:function(newVal){ $('input[name=title]').val(newVal); } }, { source:[$('textarea[name=brief]').val(),$('textarea[name=brief_en]').val()], target:function(newVal){ $('textarea[name=brief]').val(newVal); $('textarea[name=brief]').text(newVal); } } ]; mergeForm(argcs);//合并表单 /***********/ });//submit });

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值