超实用的JavaScript代码段 附使用方法


Posted in Javascript onMay 22, 2016

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

本文为大家整理了5段实用JavaScript代码,便于大家进行开发。

1. 判断日期是否有效

JavaScript中自带的日期函数还是太过简单,很难满足真实项目中对不同日期格式进行解析和判断的需要。JQuery也有一些第三方库来使日期相关的处理变得简单,但有时你可能只需要一个非常简单的函数,而不想引入一个庞大的第三方库。这时,你可以使用下面这段日期校验代码,它允许你自定义日期格式并进行日期有效性的校验。

function isValidDate(value, userFormat) {

 // Set default format if format is not provided
 userFormat = userFormat || 'mm/dd/yyyy';

 // Find custom delimiter by excluding
 // month, day and year characters
 var delimiter = /[^mdy]/.exec(userFormat)[0];

 // Create an array with month, day and year
 // so we know the format order by index
 var theFormat = userFormat.split(delimiter);

 // Create array from user date
 var theDate = value.split(delimiter);

 function isDate(date, format) {
  var m, d, y, i = 0, len = format.length, f;
  for (i; i < len; i++) {
   f = format[i];
   if (/m/.test(f)) m = date[i];
   if (/d/.test(f)) d = date[i];
   if (/y/.test(f)) y = date[i];
  }
  return (
   m > 0 && m < 13 &&
   y && y.length === 4 &&
   d > 0 &&
   // Check if it's a valid day of the month
   d <= (new Date(y, m, 0)).getDate()
  );
 }

 return isDate(theDate, theFormat);
}

使用方法:
下面这个调用返回false,因为11月份没有31天

isValidDate('dd-mm-yyyy', '31/11/2012')

2. 获取一组元素的最大宽度或高度

下面这个函数,对于需要进行动态排版的开发人员非常有用。

var getMaxHeight = function ($elms) {
 var maxHeight = 0;
 $elms.each(function () {
  // In some cases you may want to use outerHeight() instead
  var height = $(this).height();
  if (height > maxHeight) {
   maxHeight = height;
  }
 });
 return maxHeight;
};

使用方法:

$(elements).height( getMaxHeight($(elements)) );

3. 高亮文本

有很多JQuery的第三方库可以实现高亮文本的功能,但我更喜欢用下面这一小段JavaScript代码来实现这个功能,它非常短小,而且可以根据我的需要去进行灵活的修改,而且可以自己定义高亮的样式。下面这两个函数可以帮助你创建自己的文本高亮插件。

function highlight(text, words, tag) {

 // Default tag if no tag is provided
 tag = tag || 'span';

 var i, len = words.length, re;
 for (i = 0; i < len; i++) {
  // Global regex to highlight all matches
  re = new RegExp(words[i], 'g');
  if (re.test(text)) {
   text = text.replace(re, '<'+ tag +' class="highlight">$&</'+ tag +'>');
  }
 }

 return text;
}

你同样会需要取消高亮的函数:

function unhighlight(text, tag) {
 // Default tag if no tag is provided
 tag = tag || 'span';
 var re = new RegExp('(<'+ tag +'.+?>|<\/'+ tag +'>)', 'g');
 return text.replace(re, '');
}

使用方法:

$('p').html( highlight(
  $('p').html(), // the text
  ['foo', 'bar', 'baz', 'hello world'], // list of words or phrases to highlight
  'strong' // custom tag
));

4. 文字动效

有时你会希望给你的一段文字增加动效,让其中的每个字都动起来。你可以使用下面这段jQuery插件代码来达到这个效果。当然你需要结合一个CSS3 transition样式来达到更好的效果。

$.fn.animateText = function(delay, klass) {

 var text = this.text();
 var letters = text.split('');

 return this.each(function(){
  var $this = $(this);
  $this.html(text.replace(/./g, '<span class="letter">$&</span>'));
  $this.find('span.letter').each(function(i, el){
   setTimeout(function(){ $(el).addClass(klass); }, delay * i);
  });
 });

};

使用方法:

$('p').animateText(15, 'foo');

5. 逐个隐藏元素

下面这个jQuery插件可以根据你设置的步长(间隔时间)来逐个隐藏一组元素。在列表元素的重新加载中使用,可以达到很好的效果。

$.fn.fadeAll = function (ops) {
 var o = $.extend({
  delay: 500, // delay between elements
  speed: 500, // animation speed
  ease: 'swing' // other require easing plugin
 }, ops);
 var $el = this;
 for (var i=0, d=0, l=$el.length; i<l; i++, d+=o.delay) {
  $el.eq(i).delay(d).fadeIn(o.speed, o.ease);
 }
 return $el;
}

使用方法:

$(elements).fadeAll({ delay: 300, speed: 300 });

以上只是那些实用JavaScript代码段中的一小部分,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
JQuery Tips(4) 一些关于提高JQuery性能的Tips
Dec 19 Javascript
jquery 插件学习(四)
Aug 06 Javascript
firefox浏览器不支持innerText的解决方法
Aug 07 Javascript
JavaScript 数组详解
Oct 10 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
Jun 06 Javascript
jQuery animate easing使用方法图文详解
Jun 17 Javascript
JavaScript6 let 新语法优势介绍
Jul 15 Javascript
JavaScript实现瀑布流以及加载效果
Feb 11 Javascript
jQuery事件对象的属性和方法详解
Sep 09 jQuery
浅谈webpack性能榨汁机(打包速度优化)
Jan 09 Javascript
tweenjs缓动算法的使用实例分析
Aug 26 Javascript
node.js如何操作MySQL数据库
Oct 29 Javascript
JavaScript数组合并的多种方法
May 22 #Javascript
浅析JavaScript回调函数应用
May 22 #Javascript
为什么JavaScript没有块级作用域
May 22 #Javascript
全面解析Bootstrap中nav、collapse的使用方法
May 22 #Javascript
全面解析bootstrap格子布局
May 22 #Javascript
Bootstrap模块dropdown实现下拉框响应
May 22 #Javascript
基于Bootstrap实现图片轮播效果
May 22 #Javascript
You might like
PHP unset函数原理及使用方法解析
2020/08/14 PHP
Jquery 表单取值赋值的一些基本操作
2009/10/11 Javascript
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
在JavaScript中处理字符串之link()方法的使用
2015/06/08 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
2015/11/01 Javascript
用window.onerror捕获并上报Js错误的方法
2016/01/27 Javascript
AngularJS中的API(接口)简单实现
2016/07/28 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
jquery获取下拉框中的循环值
2017/02/08 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
Three.js利用dat.GUI如何简化试验流程详解
2017/09/26 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
Python图像处理之图片文字识别功能(OCR)
2019/07/30 Python
python 实现目录复制的三种小结
2019/12/04 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
PHP面试题及答案二
2015/05/23 面试题
保荐人的岗位职责
2013/11/19 职场文书
保安拾金不昧表扬信
2014/01/15 职场文书
美容院考勤制度
2014/01/30 职场文书
员工入职担保书范文
2014/04/01 职场文书
卫生院健康教育实施方案
2014/06/07 职场文书
群众路线教育党员自我剖析材料
2014/10/06 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
五年级作文之想象作文
2019/10/30 职场文书