工作中常用的js、jquery自定义扩展函数代码片段汇总


Posted in Javascript onDecember 22, 2016

仅记录一些我工作中常用的自定义js函数。

1、获取URL请求参数

//根据URL获取Id
function GetQueryString(name) {
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  var r = window.location.search.substr(1).match(reg);
  if (r != null) return unescape(r[2]); return "";
}

调用方式:var id = GetQueryString("id");

2、在文本框中光标位置插入文本值

/* 在textarea处插入文本--Start */
(function ($) {
  $.fn.extend({
    "insertContent": function (myValue, t) {
      var $t = $(this)[0];
      if (document.selection) { // ie 
        this.focus();
        var sel = document.selection.createRange();
        sel.text = myValue;
        this.focus();
        sel.moveStart('character', -l);
        var wee = sel.text.length;
        if (arguments.length == 2) {
          var l = $t.value.length;
          sel.moveEnd("character", wee + t);
          t <= 0 ? sel.moveStart("character", wee - 2 * t - myValue.length) : sel.moveStart("character", wee - t - myValue.length);
          sel.select();
        }
      } else if ($t.selectionStart
       || $t.selectionStart == '0') {
        var startPos = $t.selectionStart;
        var endPos = $t.selectionEnd;
        var scrollTop = $t.scrollTop;
        $t.value = $t.value.substring(0, startPos)
         + myValue
         + $t.value.substring(endPos, $t.value.length);
        this.focus();
        $t.selectionStart = startPos + myValue.length;
        $t.selectionEnd = startPos + myValue.length;
        $t.scrollTop = scrollTop;
        if (arguments.length == 2) {
          $t.setSelectionRange(startPos - t,
           $t.selectionEnd + t);
          this.focus();
        }
      } else {
        this.value += myValue;
        this.focus();
      }
    }
  })
})(jQuery);
/* 在textarea处插入文本--Ending */

调用方式:这里使用了easyui中的combobox控件和ueditor富文本控件

$("#sltLabel").combobox({
        onSelect: function (item) {
          var item = $('#sltLabel').combobox('getValue');
          if (item != undefined && item != null && item != "") {
            if ($("#sltChannel").val() == 0) {
              UE.getEditor('editor').focus();
              UE.getEditor('editor').execCommand('inserthtml', '{' + item + '}');
            } else {
              $("#txtContent").insertContent('{' + item + '}');
            }
          }
        }
      });

easyui-combobox代码:

<select class="easyui-combobox" id="sltLabel" name="sltLabel" style="width: 150px" onselect="change()" data-options="panelWidth: 150,panelHeight: 'auto',valueField: 'Value',textField: 'Text'">
 <option value="">选择要插入的标签</option></select>

$("#sltLabel").combobox("loadData", data);

3、将 Date 转化为指定格式的String

// 对Date的扩展,将 Date 转化为指定格式的String
// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
// 例子: 
// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
// (new Date()).Format("yyyy-M-d h:m:s.S")   ==> 2006-7-2 8:9:4.18 
Date.prototype.Format = function (fmt) { //author: zouqj 
  var o = {
    "M+": this.getMonth() + 1, //月份 
    "d+": this.getDate(), //日 
    "h+": this.getHours(), //小时 
    "m+": this.getMinutes(), //分 
    "s+": this.getSeconds(), //秒 
    "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
    "S": this.getMilliseconds() //毫秒 
  };
  if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  return fmt;
}

调用方式:new Date(json.ModifiedOn).Format("yyyy-MM-dd hh:mm:ss")

4、获取当前时间,格式:yyyy-MM-dd hh:mm:ss

//获取当前时间,格式:yyyy-MM-dd hh:mm:ss
function getNowFormatDate() {
  var date = new Date();
  var seperator1 = "-";
  var seperator2 = ":";
  var month = date.getMonth() + 1;
  var strDate = date.getDate();
  if (month >= 1 && month <= 9) {
    month = "0" + month;
  }
  if (strDate >= 0 && strDate <= 9) {
    strDate = "0" + strDate;
  }
  var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
      + " " + date.getHours() + seperator2 + date.getMinutes()
      + seperator2 + date.getSeconds();
  return currentdate;
}

5、  生成一个由随机数组成的伪Guid(32位Guid字符串)

//方式一
function newPseudoGuid () {
      var guid = "";
      for (var i = 1; i <= 32; i++) {
        var n = Math.floor(Math.random() * 16.0).toString(16);
        guid += n;
        if ((i == 8) || (i == 12) || (i == 16) || (i == 20))
          guid += "-";
      }
      return guid;
    }
//方式二
function S4() {
  return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
//生成guid
function guid() {
  return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript按位运算符的应用简析
Feb 04 Javascript
javascript性能优化之事件委托实例详解
Dec 12 Javascript
JS控制按钮10秒钟后可用的方法
Dec 22 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
Dec 31 Javascript
微信小程序 tabs选项卡效果的实现
Jan 05 Javascript
支持移动端原生js轮播图
Feb 16 Javascript
详解Vue爬坑之vuex初识
Jun 14 Javascript
Bootstrap实现可折叠分组侧边导航菜单
Mar 07 Javascript
js合并两个数组生成合并后的key:value数组
May 09 Javascript
vue头部导航动态点击处理方法
Nov 02 Javascript
说说Vuex的getters属性的具体用法
Apr 15 Javascript
如何基于jQuery实现五角星评分
Sep 02 jQuery
Angular-Touch库用法示例
Dec 22 #Javascript
Json按某个键的值进行排序
Dec 22 #Javascript
js实现登录验证码
Dec 22 #Javascript
JS实现超简单的汉字转拼音功能示例
Dec 22 #Javascript
JavaScript实现汉字转换为拼音的库文件示例
Dec 22 #Javascript
基于Javascript倒计时效果
Dec 22 #Javascript
JS前端加密算法示例
Dec 22 #Javascript
You might like
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
php实现的替换敏感字符串类实例
2014/09/22 PHP
php图片的二进制转换实现方法
2014/12/15 PHP
WordPress迁移时一些常见问题的解决方法整理
2015/11/24 PHP
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
表单验证正则表达式实例代码详解
2015/11/09 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
在vue里使用codemirror遇到的问题
2018/11/01 Javascript
[01:47]2018年度DOTA2最具人气解说-完美盛典
2018/12/16 DOTA
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
Python面向对象程序设计示例小结
2019/01/30 Python
Python魔法方法详解
2019/02/13 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
python实现整数的二进制循环移位
2019/03/08 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
利用PyQt中的QThread类实现多线程
2020/02/18 Python
Python figure参数及subplot子图绘制代码
2020/04/18 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
带你认识HTML5中的WebSocket
2015/05/22 HTML / CSS
怎样声明接口
2014/09/19 面试题
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
小学生安全保证书
2014/02/01 职场文书
收银员的岗位职责范本
2014/02/04 职场文书
幼儿园端午节活动方案
2014/08/25 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
Redis过期数据是否会被立马删除
2022/07/23 Redis