jQuery plugin 插件编写时遇到的问题总结

1、模板方法替换时,正则使用问题。

就问你美不美

  • 主要问题就是在js里面,要双斜杠转义

    1
    var regex = new RegExp("(\\{\\{"+i+"\}\})","g");
  • 贴一下所有的代码


template模板

1
2
3
4
5
6
7
8
var template =
" <div class='tag'><font>*</font><span>{{0}}</span></div> " + /*证件照*/
" <img alt='' src='${contextPath}/js/AjaxFileUploader/loading.gif' style='display: none;' id='{{1}}'>" + //id='loadingimgA'
" <input class='real_file' type='file' name='upload' onchange='uploadPicture("+'{{2}}'+")' accept='image/*' capture='camera' style='display: none' id='{{3}}' /> " +
" <input class='real_button uploadImg required' id='{{3}}' type='button' value='上传图片' style='display:none' action='{{8}}'>" +
" <input type='hidden' id='{{4}}' name='{{5}}' value='' /> " + // id="imgShowHidden" name="myAccountVo.credentialImgFrontPath"
" </div>" +
" </div>";


mobDefault集合map参数

1
2
3
4
5
6
7
8
var mobDefault = {
title : "证件照" , //{{0}}
inp_file_id : img_id, //{{1}}
img_container_id : img_id+"Container", //{{2}}
img_sample_id : img_id+"Show" , //{{3}}
inp_file_id : img_id, //{{4}}
img_loading_id : img_id+"Loading", //{{5}}
};


模板替换方法 定义在String的原型里面了,直接拓展String的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
* 模板替换方法
*/
String.prototype.template=String.prototype.template || function(){
var args=arguments[0];
var i = 0;
for(var key in args){
var regex = new RegExp("(\\{\\{"+i+"\}\})","g");
mobileTemplate = mobileTemplate.replace(regex, args[key]);
i++;
}
return mobileTemplate;
}

Contents
  1. 1. 1、模板方法替换时,正则使用问题。