工作中常用的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实现的网页局布刷新效果
Dec 01 Javascript
Javascript中的var_dump函数实现代码
Sep 07 Javascript
二叉树先序遍历的非递归算法具体实现
Jan 09 Javascript
Jquery遍历节点的方法小集
Jan 22 Javascript
采用call方式实现js继承
May 20 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
Jun 30 Javascript
JavaScript实现开关等效果
Sep 08 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
May 31 jQuery
解析JS在获取当前月的最后一天遇到的坑
Aug 30 Javascript
layui表单提交到后台自动封装到实体类的方法
Sep 12 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
Oct 30 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
Nov 06 Javascript
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
使用PHP获取当前url路径的函数以及服务器变量
2013/06/29 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
js字符编码函数区别分析
2008/06/05 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
javascript检查浏览器是否已经启用XX功能
2015/07/10 Javascript
纯javascript代码实现计算器功能(三种方法)
2015/09/07 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
Node.js使用Koa搭建 基础项目
2018/01/08 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
VUE实现自身整体组件销毁的示例代码
2020/01/13 Javascript
浅析python 中__name__ = '__main__' 的作用
2014/07/05 Python
Python 创建子进程模块subprocess详解
2015/04/08 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
基于梯度爆炸的解决方法:clip gradient
2020/02/04 Python
python实现斗地主分牌洗牌
2020/06/22 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
python单元测试框架pytest的使用示例
2020/10/07 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
法国创作个性化T恤衫和其他定制产品平台:Tostadora
2018/04/08 全球购物
《走一步再走一步》教学反思
2014/02/15 职场文书
人力资源主管的岗位职责
2014/03/15 职场文书
销售岗位职责范本
2014/06/12 职场文书
班子四风对照检查材料
2014/08/21 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
党员转正申请报告
2015/05/15 职场文书
素质拓展训练感想
2015/08/07 职场文书
2017年寒假社区服务活动总结
2016/04/06 职场文书
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python