模板内容抽出
业务需求:选择短信模板,在可编辑的框内填写内容
模板示例:
您的验证码是:{xxxxxxxx},请在{xx}分钟内填写。用户填写页面:
思路:将{}外的文字存到一数组中,最后将input标签替{},即可实现需求。
代码如下:
/** * 重构模版内容html * @author mr * @since 2017/3/31 * @param 模版内容:eg.你的订单{}暂时无法出票,请联系客服{}及时进行退票操作! */ _ordDetail.getContentStrs = function(str){ var b_indexs = [];//"{"位置数组 var e_indexs = [];//"}"位置数组 var result = str.match(new RegExp('}','g')); _ordDetail.count = !result ? 0 : result.length;//模版待输入内容数量 if(0==_ordDetail.count){ return str; }else{ for(var i=0;i<_ordDetail.count+1;i++){ if(0==i){ //首次取内容 var begin = str.indexOf('{',0); b_indexs[0] = begin; _ordDetail.contentArr[i] = str.substring(0,begin); }else if(i==_ordDetail.count){//最后一次取内容 begin1 = str.indexOf('}',e_indexs[i-2]+1); _ordDetail.contentArr[i] = str.substring(begin1+1); }else{ var end1 = str.indexOf('{',b_indexs[i-1]+1); b_indexs[i] = end1; var begin1 = 0; if(0==e_indexs.length){ begin1 = str.indexOf('}',0); }else{ begin1 = str.indexOf('}',e_indexs[i-2]+1); } e_indexs[i-1] = begin1; _ordDetail.contentArr[i] = str.substring(begin1+1,end1); } } //重构html var htmlStr = ''; for(var i=0;i<_ordDetail.contentArr.length-1;i++){ if(i==_ordDetail.contentArr.length-2){ htmlStr += _ordDetail.contentArr[i]+_ordDetail.inputHtml+_ordDetail.contentArr[i+1];//拼接input输入框 }else{ htmlStr += _ordDetail.contentArr[i]+_ordDetail.inputHtml;//拼接input输入框 } } return htmlStr; } }