JQuery学习(1):封装与扩展脚本

1。string.Format

我们都知道,在C#里面有string.Format这个格式化字符串方法,方便我们格式化字符串,例如:

string sql=@"select * from users where userId=‘{0}‘",sql=string.Format(sql,1);

那么输出的sql=select * from users where userId=‘1‘;

但是在页面脚本上,却没有这个方法供我们使用,每次输出值,都要用到“++”拼接值,例如:

var html =“ ”;

html +=“<div>”;

html += “<a>“+ 例子 +”</a>”;

html +=“</div>”;

所以在这,我封装了一个JQuery格式化字符串方法:

 1             string = {};
 2             string.Format = function () {
 3                 var param = [];
 4                 for (var i = 0, length = arguments.length; i < length; i++) {
 5                     param.push(arguments[i]);
 6                 }
 7                 
 8                 var format = param[0];
 9                 param.shift();
10                 return format.replace(/\{(\d+)}/g, function (m, i) {
11                     return param[i];
12                 });
13             }

调用也跟C#的string.Format方法一样:

string.Format("<div>{0}</div>", 1)

2。根据参数匹配参数内容是否是URL

脚本方法:

1  function GetUrlByParam(name) {
2       var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
3       var r = window.location.search.substr(1).match(reg);  //匹配目标参数
4        if (r != null) return unescape(r[2]); return null; //返回参数值
5  } 

调用:

1 页面A跳转到页面B,页面A附带参数:www.a.com?backUrl=www.baidu.com
2 var backUrl= GetUrlByParam("backUrl");

3。获取光标位置插入内容

光标,相信大家都知道是什么吧。这里介绍的就是用脚本捕抓光标位置,从而插入内容的扩展函数:

 1  $.fn.extend({
 2                     insertAtCaret: function (myValue) {
 3                         var $t = $(this)[0];
 4                         if (document.selection) {
 5                             this.focus();
 6                             sel = document.selection.createRange();
 7                             sel.text = myValue;
 8                             this.focus();
 9                         }
10                         else
11                             if ($t.selectionStart || $t.selectionStart == 0) {
12                                 var startPos = $t.selectionStart;
13                                 var endPos = $t.selectionEnd;
14                                 var scrollTop = $t.scrollTop;
15                                 $t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length);
16                                 this.focus();
17                                 $t.selectionStart = startPos + myValue.length;
18                                 $t.selectionEnd = startPos + myValue.length;
19                                 $t.scrollTop = scrollTop;
20                             }
21                             else {
22                                 this.value += myValue;
23                                 this.focus();
24                             }
25                     }
26                 })

调用:

1 select * from users where userId=‘‘;如果光标在双引号中间,调用方法
2 insertAtCaret(“1”);就会变成:select * from users where userId=1;

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。