JS扩展方法——字符串trim()
转自: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()的更多相关文章
- JS扩展方法
JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现.这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣. 下面给出一个例子 ...
- js扩展方法(数组不重复推入)
扩展方法是一个很有趣的东西. 使用prototype在原始的类型上添加自己需要的方法.方便在一些常用的情况下使用,比如说字符串的String.trim()清除字符串前后的空格(当然这个方法内置已经有了 ...
- JS replace()方法-字符串首字母大写
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. replace()方法有两个参数,第一个参数是正则表达式,正则表达式如果带全局标志/g,则是代表替换 ...
- JS 扩展方法prototype
通过类对象的prototype设置扩展方法,下面为String对象增加quote(两边加字符)方法 <script type="text/javascript"> St ...
- Js扩展方法ReplaceAll
String.prototype.replaceAll = function (reallyDo, replaceWith, ignoreCase) { if (!RegExp.prototype.i ...
- 添加一个js扩展方法
String.prototype.repeatify=String.prototype.repeatify || function(times){ var str=''; for(var i=0;i& ...
- Array js扩展方法 forEach()
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js一些方法的扩展
//JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现.这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣. //下面给出 ...
- 从js的repeat方法谈js字符串与数组的扩展方法
js将字符串重复N次的repeat方法的8个版本 /* *@desc: 将一个字符串重复自身N次 */ //版本1:利用空数组的join方法 function repeat(target, n) { ...
随机推荐
- Oracle读写分离架构
读写分离是架构分布式系统的一个重要思想.不少系统整体处理能力并不能同业务的增长保持同步,因此势必会带来瓶颈,单纯的升级硬件并不能一劳永逸.针对业务类型特点,需要从架构模式上进行一系列的调整,比如业务模 ...
- iOS开发中调试小技巧
对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...
- iOS - property,strong,weak,retain,assign,copy,nomatic 的区别及使用
1:ARC环境下,strong代替retain.weak代替assign,xcode 4.2(ios sdk4.3和以下版本)和之前的版本使用的是retain和assign,是不支持ARC的.xcod ...
- Android Studio 生成Jar包时遇到的gradlew下载问题
网上介绍说使用gradlew打包jar,可是输入gradlew makeJar后就开始download XXX.zip,但是等了很久都没有完成.解决办法如下: 原文:http://blog.csdn ...
- CLR via C#(11)-无参属性、有参数属性(索引器)
一. 无参属性 1. 定义属性 无参属性就是我们最常见的属性方式,在赋值时可以加入一定的逻辑判断.属性的定义其实不复杂,先看个直观的例子: 说明: 属性要定义名称和类型,且类型不能是void. 属性是 ...
- [插件]jQuery multiselect初始化及默认值修改
下载地址:http://pan.baidu.com/s/1dE2daSD 1.Jquery多选下拉列表插件jquery multiselect功能介绍及使用 http://www.jb51.net/a ...
- WebService - 怎样提高WebService性能 大数据量网络传输处理
直接返回DataSet对象 返回DataSet对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用 ...
- 在帝都的Android面试感想
#第一次面试赤子城Android开发实习生 关于面试的表现和感想 1.没有准备充分就去面试(这是大忌,也就直接决定了结果) 我去面试Android,但是却不知道很多关于Android的基础知识,就是明 ...
- Python 与 C# lambda表达式比较
Python里到lambda表达式非常简约, lam =lambda a: a*2 --> lam(3) 6 在某些情况下确实挺好用到.但是相比C#到lambda表达式,还是不够强大(我不是在黑 ...
- Sencha Architect 安装与使用
http://www.sencha.com/products/touch/ Sencha SDK Tools Advanced JavaScript and CSS Project Build Too ...