超实用的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 相关文章推荐
js活用事件触发对象动作
Aug 10 Javascript
jquery autocomplete自动完成插件的的使用方法
Aug 07 Javascript
Javascript学习笔记之数组的构造函数
Nov 23 Javascript
javascript实现复选框选中属性
Mar 25 Javascript
javascript中clipboardData对象用法详解
May 13 Javascript
jQuery寻找n以内完全数的方法
Jun 24 Javascript
基于Vue2的移动端开发环境搭建详解
Nov 03 Javascript
AngularJS 单选框及多选框的双向动态绑定
Apr 20 Javascript
基于vue的短信验证码倒计时demo
Sep 13 Javascript
详谈commonjs模块与es6模块的区别
Oct 18 Javascript
详解Vue用cmd创建项目
Feb 12 Javascript
微信小程序实现购物车功能
Nov 18 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用mysql数据库存储session的代码
2010/03/05 PHP
js window.event对象详尽解析
2009/02/17 Javascript
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
2011/05/07 Javascript
js比较和逻辑运算符的介绍
2013/03/10 Javascript
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
jquery.post用法关于type设置问题补充
2014/01/03 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
vue-cli中实现响应式布局的方法
2021/03/02 Vue.js
Python socket实现简单聊天室
2018/04/01 Python
提升Python程序性能的7个习惯
2019/04/14 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
Django的CVB实例详解
2020/02/10 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
法国在线药房:1001Pharmacies
2021/03/07 全球购物
学前教育学生自荐信范文
2013/12/31 职场文书
2014年学习雷锋活动总结
2014/03/01 职场文书
高一新生军训感言
2014/03/02 职场文书
运动会加油稿100字
2014/09/19 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书