Js基本数据类型常用方法扩展(基本数据处理)
来源:互联网 发布:阿里云免费监控 编辑:程序博客网 时间:2024/06/15 03:27
Js基本数据类型常用方法扩展
- JS中substring与substr的区别
之前在项目中用到substring方法,因为C#中也有字符串的截取方法Substring方法,当时也没有多想就误以为这两种方法的使用时一样的。这样就直接按照在C#中使用Substring的方式,直接在js中用了substring,在实际的项目中,有时候能得到正确的结果,但是有时候得到的结果却让人匪夷所思,后来仔细的调试跟踪之后才发现,原来是Js中substring的方法跟C#中的Substring方法不一样。关于C# 中的字符串截取方法已经很简单了,这里就不再叙述了。主要讲一个js中的substring方法,顺便再讲一下substr方法。
Substring:
该方法可以有一个参数也可以有两个参数。
l 一个参数:
示例: var str=“Olive”;
str.substring(3); 结果:“ve” 说明:当substring只有一个参数时,参数表示从字符串的第几位开始截取,
直截取到字符串结尾。
l 两个参数:
示例:var str=“Olive”;
1) Str.substring(3,4);
2) Str.substring(3,2);
结果:1) “v” 2) 0 说明:当substring有两个参数时,第一个参数表示从字符串的第几位开始截取,第二个参数表示截取到字符串的第几位。这点是个C#中字符截取不同的一点,所以才会导致不同的结果。
Substr:
该方法也可以有一个或两个参数。
l 一个参数:
说明:substr一个参数时,作用跟substring方法一个参数时一样。
l 两个参数:
示例:var str=“Olive”;
1) Str.substr(3,2);
2) Str.substr(3,4);
结果:1) “ve” 2) “ve” 说明:substr有两个参数时,第一个参数表示从字符串的第几位开始截取,第二个参数表示截取多少位字符串。这点跟C#中字符截取相同的,所以在以后的使用中,如果想要避免出现截取的问题最好还是使用substr。
- Array的contains方法
Array没有一个contains方法,在现实的应用场景是,有时候我们需要判断某一个值是否
在该数组中,这个时候一个contains方法就显得很有必要,具体实现如下:
//判断数组中是否包含某个元素
Array.prototype.contains = function (obj) {
var i = this.length;while (i--) { if (this[i] === obj) { return true; }}return false;
}
2. String的contains方法
同样的问题也存在于String类型中,在js中同样也没有一个用来判断某一子串是否包
含在母字符串中的方法,具体实现如下:
//字符串中是否包含某字符串
String.prototype.contains = function contains(string, substr, isIgnoreCase) {
if (isIgnoreCase) { this = this.toLowerCase(); string = string.toLowerCase(); substr = substr.toLowerCase();}var startChar = substr.substring(0, 1);var strLen = substr.length;for (var j = 0; j < string.length - strLen + 1; j++) { if (string.charAt(j) == startChar)// { if (string.substring(j, j + strLen) == substr)// { return true; } }}return false;
}
3. Date的addDays、addMonths、addYear、Format方法
熟悉C#的朋友,都会很熟悉也很享受关于DateTime的一系列的便利的操作,在js中并
没有像C#中那样便利的有关时间的操作,有时候不免会用到时间的加减等相关的交互,这里专门对Date类型进行了扩展,具体如下:
//添加天
Date.prototype.addDays = function (d) {
this.setDate(this.getDate() + d);
};
//添加周
Date.prototype.addWeeks = function (w) {
this.addDays(w * 7);
};
//添加月
Date.prototype.addMonths = function (m) {
var d = this.getDate();this.setMonth(this.getMonth() + m);if (this.getDate() < d) this.setDate(0);
};
//添加年
Date.prototype.addYears = function (y) {
var m = this.getMonth();this.setFullYear(this.getFullYear() + y);if (m < this.getMonth()) { this.setDate(0);}
};
//日期的格式处理
//日期格式化
Date.prototype.Format = function (fmt) { //author: meizz
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;
};
4. Math.max.apply(null,array),求数组中的最大值
该方法主要用来求一个数组中的最大值,这种场景在实际的工作中也会经常用遇到。或
许会有朋友问到,为什么不直接调用Math.max()方法?需要注意的是Math.max()方法支持多个参数的传递,但是它不支持直接传递一个数组作为参数,但是所有的函数都有apply(作用域,参数)这样的一个方法,我们通过apply方法,间接的将数组作为参数,并且将数组中的每个值拆开来传递给了max方法,进而达到了求出最大值的需求。
- Js基本数据类型常用方法扩展(基本数据处理)
- 每日学习心得:Js基本数据类型常用方法扩展
- 基本数据类型(JS)
- 数据处理程序语言中的基本数据类型
- 数据处理程序语言中的基本数据类型
- python 基本数据类型常用方法总结
- C++学习笔记之三 数据处理(基本数据类型)
- 常用基本数据类型
- 常用数据库基本数据类型
- oracle---常用基本数据类型
- 常用数据库基本数据类型
- java常用基本数据类型
- SQL基本常用数据类型
- JS基本函数扩展
- js基本数据类型转换
- js基本数据类型
- JS-基本数据类型
- JS基本数据类型
- 向死而生的跨境电商,还有几道救命符可用?
- 数据结构实验之链表四:有序链表的归并
- kAMDMobileImageMounterDeviceLocked
- 文件加密
- HDU 5441 Travel (并查集)
- Js基本数据类型常用方法扩展(基本数据处理)
- MSP430中断
- 学习Java的书籍和步骤
- 为LibreOffice的工具栏添加一个新功能流程
- 栈的判定
- PyGobject(六十七)Gtk.Widget之Gtk.CellView
- Scala入门之函数进阶
- C语言与python获取命令行输出
- 为NProgress增加模态层,更完美的应用于复杂网页的细长进度条