工作中常用的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 相关文章推荐
xtree.js 代码
Mar 13 Javascript
Javascript 面试题随笔
Mar 31 Javascript
JQuery 图片的展开和伸缩实例讲解
Apr 18 Javascript
javascript + jquery实现定时修改文章标题
Mar 19 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
Mar 24 Javascript
前端js文件合并的三种方式推荐
May 19 Javascript
JS在onclientclick里如何控制onclick的执行
May 30 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
May 26 Javascript
Angular2里获取(input file)上传文件的内容的方法
Sep 05 Javascript
javascript自定义事件功能与用法实例分析
Nov 08 Javascript
详解如何用typescript开发koa2的二三事
Nov 13 Javascript
Vue使用axios出现options请求方法
May 30 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 中include()与require()的对比
2006/10/09 PHP
在PHP中使用反射技术的架构插件使用说明
2010/05/18 PHP
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
2019/08/12 PHP
PHP 文件上传限制问题
2019/09/01 PHP
通用JS事件写法实现代码
2009/01/07 Javascript
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
仅Firefox中链接A无法实现模拟点击以触发其默认行为
2011/07/31 Javascript
javascript中的if语句使用介绍
2013/11/20 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
2015/08/01 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
2018/01/26 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
python列表的常用操作方法小结
2016/05/21 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
往来会计岗位职责
2013/12/19 职场文书
上课说话检讨书大全
2014/01/22 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
2014年民主评议党员个人总结
2014/09/24 职场文书