超实用的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 相关文章推荐
懒就要懒到底——鼠标自动点击(含时间判断)
Feb 20 Javascript
javascript 流畅动画实现原理
Sep 08 Javascript
javascript 文章截取部分无损html显示实现代码
May 04 Javascript
关于eval 与new Function 到底该选哪个?
Apr 17 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
Aug 18 Javascript
javascript基本算法汇总
Mar 09 Javascript
jQuery子元素过滤选择器用法示例
Sep 09 Javascript
原生js实现节日时间倒计时功能
Jan 18 Javascript
基于vue实现可搜索下拉框定制组件
Mar 26 Javascript
如何优雅地取消 JavaScript 异步任务
Mar 22 Javascript
Node.js API详解之 querystring用法实例分析
Apr 29 Javascript
js实现简易拖拽的示例
Oct 26 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 使用post,get的一种简洁方式
2010/04/25 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
PHP学习之整理字符串
2011/04/17 PHP
PHP中date()日期函数有关参数整理
2011/07/19 PHP
探讨PHP删除文件夹的三种方法
2013/06/09 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
php微信开发之图片回复功能
2018/06/14 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
laravel清除视图缓存的代码
2019/10/23 PHP
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
JavaScript实现简单计算器功能
2019/12/19 Javascript
JavaScript, select标签元素左右移动功能实现
2020/05/14 Javascript
JS实现炫酷轮播图
2020/11/15 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
Django 生成登陆验证码代码分享
2017/12/12 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
django创建css文件夹的具体方法
2020/07/31 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
法学函授自我鉴定
2014/02/06 职场文书
新品发布会策划方案
2014/06/08 职场文书
保险内勤岗位职责
2015/04/13 职场文书
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技