工作中常用的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高级程序设计(第3版)学习笔记11 内建js对象
Oct 11 Javascript
jquery()函数的三种语法介绍
Oct 09 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
Mar 26 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
Jun 10 Javascript
用js读写cookie的简单方法(推荐)
Aug 08 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
Sep 15 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
Oct 28 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
Jan 19 Javascript
vue2.0使用swiper组件实现轮播的示例代码
Mar 03 Javascript
Vue组件实现触底判断
Jun 26 Javascript
在vue中使用image-webpack-loader实例
Nov 12 Javascript
原生JS实现拖拽效果
Dec 04 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连mysql和oracle数据库性能比较
2006/10/09 PHP
PHP 数组教程 定义数组
2009/10/23 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
php实现网页上一页下一页翻页过程详解
2019/06/28 PHP
js GridView 实现自动计算操作代码
2009/03/25 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
extjs ColumnChart设置不同的颜色实现代码
2013/05/17 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
2013/11/21 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
2014/11/23 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
element-ui 上传图片后清空图片显示的实例
2018/09/04 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
python对象与json相互转换的方法
2019/05/07 Python
关于Python 的简单栅格图像边界提取方法
2019/07/05 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
HTML5实现动画效果的方式汇总
2016/02/29 HTML / CSS
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
党的群众路线教育实践活动动员会主持词
2014/03/20 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
大班下学期个人总结
2015/02/13 职场文书
起诉书格式范文
2015/05/20 职场文书
教师读书笔记
2015/06/29 职场文书
MySQL 数据表操作
2022/05/04 MySQL