转自:http://www.cnblogs.com/kissdodog/p/3386480.html

<head>
<title>测试JS扩展方法</title>
<script type="text/javascript">
// 合并多个空白为一个空白
String.prototype.ResetBlank = function() { //对字符串扩展
var regEx = /\s+/g;
return this.replace(regEx, ' ');
}; window.onload = function()
{
var str = "你 在他想还好吗?";
alert(str);
str = str.ResetBlank(); //这样就能够调用了,跟C#的很像吧!
alert(str);
}
</script>
</head>
// 清除两边的空格
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, '');
};
// 合并多个空白为一个空白
String.prototype.ResetBlank = function() {
var regEx = /\s+/g;
return this.replace(regEx, ' ');
}; // 保留数字
String.prototype.GetNum = function() {
var regEx = /[^\d]/g;
return this.replace(regEx, '');
}; // 保留中文
String.prototype.GetCN = function() {
var regEx = /[^\u4e00-\u9fa5\uf900-\ufa2d]/g;
return this.replace(regEx, '');
}; // String转化为Number
String.prototype.ToInt = function() {
return isNaN(parseInt(this)) ? this.toString() : parseInt(this);
}; // 得到字节长度
String.prototype.GetLen = function() {
var regEx = /^[\u4e00-\u9fa5\uf900-\ufa2d]+$/;
if (regEx.test(this)) {
return this.length * 2;
} else {
var oMatches = this.match(/[\x00-\xff]/g);
var oLength = this.length * 2 - oMatches.length;
return oLength;
}
}; // 获取文件全名
String.prototype.GetFileName = function() {
var regEx = /^.*\/([^\/\?]*).*$/;
return this.replace(regEx, '$1');
}; // 获取文件扩展名
String.prototype.GetExtensionName = function() {
var regEx = /^.*\/[^\/]*(\.[^\.\?]*).*$/;
return this.replace(regEx, '$1');
}; //替换所有
String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) {
if (!RegExp.prototype.isPrototypeOf(reallyDo)) {
return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi" : "g")), replaceWith);
} else {
return this.replace(reallyDo, replaceWith);
}
};
//格式化字符串 add By 刘景宁 2010-12-09
String.Format = function() {
if (arguments.length == 0) {
return '';
} if (arguments.length == 1) {
return arguments[0];
} var reg = /{(\d+)?}/g;
var args = arguments;
var result = arguments[0].replace(reg, function($0, $1) {
return args[parseInt($1) + 1];
});
return result;
}; // 数字补零
Number.prototype.LenWithZero = function(oCount) {
var strText = this.toString();
while (strText.length < oCount) {
strText = '0' + strText;
}
return strText;
}; // Unicode还原
Number.prototype.ChrW = function() {
return String.fromCharCode(this);
}; // 数字数组由小到大排序
Array.prototype.Min2Max = function() {
var oValue;
for (var i = 0; i < this.length; i++) {
for (var j = 0; j <= i; j++) {
if (this[i] < this[j]) {
oValue = this[i];
this[i] = this[j];
this[j] = oValue;
}
}
}
return this;
}; // 数字数组由大到小排序
Array.prototype.Max2Min = function() {
var oValue;
for (var i = 0; i < this.length; i++) {
for (var j = 0; j <= i; j++) {
if (this[i] > this[j]) {
oValue = this[i];
this[i] = this[j];
this[j] = oValue;
}
}
}
return this;
}; // 获得数字数组中最大项
Array.prototype.GetMax = function() {
var oValue = 0;
for (var i = 0; i < this.length; i++) {
if (this[i] > oValue) {
oValue = this[i];
}
}
return oValue;
}; // 获得数字数组中最小项
Array.prototype.GetMin = function() {
var oValue = 0;
for (var i = 0; i < this.length; i++) {
if (this[i] < oValue) {
oValue = this[i];
}
}
return oValue;
}; // 获取当前时间的中文形式
Date.prototype.GetCNDate = function() {
var oDateText = '';
oDateText += this.getFullYear().LenWithZero(4) + new Number(24180).ChrW();
oDateText += this.getMonth().LenWithZero(2) + new Number(26376).ChrW();
oDateText += this.getDate().LenWithZero(2) + new Number(26085).ChrW();
oDateText += this.getHours().LenWithZero(2) + new Number(26102).ChrW();
oDateText += this.getMinutes().LenWithZero(2) + new Number(20998).ChrW();
oDateText += this.getSeconds().LenWithZero(2) + new Number(31186).ChrW();
oDateText += new Number(32).ChrW() + new Number(32).ChrW() + new Number(26143).ChrW() + new Number(26399).ChrW() + new String('26085199682010819977222352011620845').substr(this.getDay() * 5, 5).ToInt().ChrW();
return oDateText;
};
//扩展Date格式化
Date.prototype.Format = function(format) {
var o = {
"M+": this.getMonth() + 1, //月份
"d+": this.getDate(), //日
"h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时
"H+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
};
var week = {
"0": "\u65e5",
"1": "\u4e00",
"2": "\u4e8c",
"3": "\u4e09",
"4": "\u56db",
"5": "\u4e94",
"6": "\u516d"
};
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
if (/(E+)/.test(format)) {
format = format.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "\u661f\u671f" : "\u5468") : "") + week[this.getDay() + ""]);
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
}
}
return format;
}
Date.prototype.Diff = function(interval, objDate) {
//若参数不足或 objDate 不是日期类型則回传 undefined
if (arguments.length < 2 || objDate.constructor != Date) { return undefined; }
switch (interval) {
//计算秒差
case 's': return parseInt((objDate - this) / 1000);
//计算分差
case 'n': return parseInt((objDate - this) / 60000);
//计算時差
case 'h': return parseInt((objDate - this) / 3600000);
//计算日差
case 'd': return parseInt((objDate - this) / 86400000);
//计算周差
case 'w': return parseInt((objDate - this) / (86400000 * 7));
//计算月差
case 'm': return (objDate.getMonth() + 1) + ((objDate.getFullYear() - this.getFullYear()) * 12) - (this.getMonth() + 1);
//计算年差
case 'y': return objDate.getFullYear() - this.getFullYear();
//输入有误
default: return undefined;
}
}; //检测是否为空
Object.prototype.IsNullOrEmpty = function() {
var obj = this;
var flag = false;
if (obj == null || obj == undefined || typeof (obj) == 'undefined' || obj == '') {
flag = true;
} else if (typeof (obj) == 'string') {
obj = obj.trim();
if (obj == '') {//为空
flag = true;
} else {//不为空
obj = obj.toUpperCase();
if (obj == 'NULL' || obj == 'UNDEFINED' || obj == '{}') {
flag = true;
}
}
}
else {
flag = false;
}
return flag;

JS扩展方法——字符串trim()的更多相关文章

  1. JS扩展方法

    JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现.这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣. 下面给出一个例子 ...

  2. js扩展方法(数组不重复推入)

    扩展方法是一个很有趣的东西. 使用prototype在原始的类型上添加自己需要的方法.方便在一些常用的情况下使用,比如说字符串的String.trim()清除字符串前后的空格(当然这个方法内置已经有了 ...

  3. JS replace()方法-字符串首字母大写

    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. replace()方法有两个参数,第一个参数是正则表达式,正则表达式如果带全局标志/g,则是代表替换 ...

  4. JS 扩展方法prototype

    通过类对象的prototype设置扩展方法,下面为String对象增加quote(两边加字符)方法 <script type="text/javascript"> St ...

  5. Js扩展方法ReplaceAll

    String.prototype.replaceAll = function (reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.i ...

  6. 添加一个js扩展方法

    String.prototype.repeatify=String.prototype.repeatify || function(times){ var str=''; for(var i=0;i& ...

  7. Array js扩展方法 forEach()

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. js一些方法的扩展

    //JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现.这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣. //下面给出 ...

  9. 从js的repeat方法谈js字符串与数组的扩展方法

    js将字符串重复N次的repeat方法的8个版本 /* *@desc: 将一个字符串重复自身N次 */ //版本1:利用空数组的join方法 function repeat(target, n) { ...

随机推荐

  1. nyoj1007(euler 函数)

    euler(x)公式能计算小于等于x的并且和x互质的数的个数: 我们再看一下如何求小于等于n的和n互质的数的和, 我们用sum(n)表示: 若gcd(x, a)=1,则有gcd(x, x-a)=1: ...

  2. mxnet环境搭建随记

    安装mxnet还是遇到不少麻烦事,现在简单记一下,挖个坑,后续详细补充,打算写一下我的mxnet探索之旅. 更新: 具体安装mxnet,cuda,opencv过程已经补坑——点击进入 不知道为什么,在 ...

  3. 微软MSMQ消息队列的使用

    首先在windows系统中安装MSMQ 一.MSMQ交互 开发基于消息的应用程序从队列开始.MSMQ包含四种队列类型: 外发队列:消息发送到目的地之前,用它来临时存储消息. 公共队列:在主动目录中公布 ...

  4. Yii 同域名的单点登录 SSO实现

    SSO (Single Sign-on) 顾名思义就是几个子项目共用一个登录点. 原理简单来说就是服务端session 共享, 客户端跨域cookies. 实现非常简单,protected/confi ...

  5. python中如何用dis模块来查看py的汇编代码?

    之前测试不成功,用导入dis的方式. 但如何在命令行里加入 -m dis,就会OK啦. python -m dis test.py #coding: utf8 x = [1, 2, 3] for i ...

  6. ytu 1064: 输入三个字符串,按由小到大的顺序输出(水题,字符串处理)

    1064: 输入三个字符串,按由小到大的顺序输出 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 471  Solved: 188[Submit][Sta ...

  7. git 打标签并推送tag到托管服务器

    我们常常在代码封板时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的. 首先我们了解下 git 的 ta ...

  8. font-face使用备忘

    @font-face { font-family: 'SingleMalta'; src: url('./font/SingleMalta.ttf'); } @font-face { font-fam ...

  9. Java Hour 64 JVM 最大内存设置

    从这篇博文起,不再是流水式的学习记录了,稍微改进下风格. 运行时获得当前JVM 设置大小 首先,-Xmx100000000指定最大的内存分配. public static void main(Stri ...

  10. Win10 VS2015 社区版切换到VS2013社区版 进行维护之前的项目

    前提:当先在Win10 OS 安装了vs2015之后开发Win UAP,之后要维护之前的WP8 版本,安装了VS2013社区版 打开后 1问.Exception from HRESULT: 0x897 ...