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

  1. <head>
  2. <title>测试JS扩展方法</title>
  3. <script type="text/javascript">
  4. // 合并多个空白为一个空白
  5. String.prototype.ResetBlank = function() { //对字符串扩展
  6. var regEx = /\s+/g;
  7. return this.replace(regEx, ' ');
  8. };
  9.  
  10. window.onload = function()
  11. {
  12. var str = "你 在他想还好吗?";
  13. alert(str);
  14. str = str.ResetBlank(); //这样就能够调用了,跟C#的很像吧!
  15. alert(str);
  16. }
  17. </script>
  18. </head>
  1. // 清除两边的空格
  2. String.prototype.trim = function() {
  3. return this.replace(/(^\s*)|(\s*$)/g, '');
  4. };
  5. // 合并多个空白为一个空白
  6. String.prototype.ResetBlank = function() {
  7. var regEx = /\s+/g;
  8. return this.replace(regEx, ' ');
  9. };
  10.  
  11. // 保留数字
  12. String.prototype.GetNum = function() {
  13. var regEx = /[^\d]/g;
  14. return this.replace(regEx, '');
  15. };
  16.  
  17. // 保留中文
  18. String.prototype.GetCN = function() {
  19. var regEx = /[^\u4e00-\u9fa5\uf900-\ufa2d]/g;
  20. return this.replace(regEx, '');
  21. };
  22.  
  23. // String转化为Number
  24. String.prototype.ToInt = function() {
  25. return isNaN(parseInt(this)) ? this.toString() : parseInt(this);
  26. };
  27.  
  28. // 得到字节长度
  29. String.prototype.GetLen = function() {
  30. var regEx = /^[\u4e00-\u9fa5\uf900-\ufa2d]+$/;
  31. if (regEx.test(this)) {
  32. return this.length * 2;
  33. } else {
  34. var oMatches = this.match(/[\x00-\xff]/g);
  35. var oLength = this.length * 2 - oMatches.length;
  36. return oLength;
  37. }
  38. };
  39.  
  40. // 获取文件全名
  41. String.prototype.GetFileName = function() {
  42. var regEx = /^.*\/([^\/\?]*).*$/;
  43. return this.replace(regEx, '$1');
  44. };
  45.  
  46. // 获取文件扩展名
  47. String.prototype.GetExtensionName = function() {
  48. var regEx = /^.*\/[^\/]*(\.[^\.\?]*).*$/;
  49. return this.replace(regEx, '$1');
  50. };
  51.  
  52. //替换所有
  53. String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) {
  54. if (!RegExp.prototype.isPrototypeOf(reallyDo)) {
  55. return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi" : "g")), replaceWith);
  56. } else {
  57. return this.replace(reallyDo, replaceWith);
  58. }
  59. };
  60. //格式化字符串 add By 刘景宁 2010-12-09
  61. String.Format = function() {
  62. if (arguments.length == 0) {
  63. return '';
  64. }
  65.  
  66. if (arguments.length == 1) {
  67. return arguments[0];
  68. }
  69.  
  70. var reg = /{(\d+)?}/g;
  71. var args = arguments;
  72. var result = arguments[0].replace(reg, function($0, $1) {
  73. return args[parseInt($1) + 1];
  74. });
  75. return result;
  76. };
  77.  
  78. // 数字补零
  79. Number.prototype.LenWithZero = function(oCount) {
  80. var strText = this.toString();
  81. while (strText.length < oCount) {
  82. strText = '0' + strText;
  83. }
  84. return strText;
  85. };
  86.  
  87. // Unicode还原
  88. Number.prototype.ChrW = function() {
  89. return String.fromCharCode(this);
  90. };
  91.  
  92. // 数字数组由小到大排序
  93. Array.prototype.Min2Max = function() {
  94. var oValue;
  95. for (var i = 0; i < this.length; i++) {
  96. for (var j = 0; j <= i; j++) {
  97. if (this[i] < this[j]) {
  98. oValue = this[i];
  99. this[i] = this[j];
  100. this[j] = oValue;
  101. }
  102. }
  103. }
  104. return this;
  105. };
  106.  
  107. // 数字数组由大到小排序
  108. Array.prototype.Max2Min = function() {
  109. var oValue;
  110. for (var i = 0; i < this.length; i++) {
  111. for (var j = 0; j <= i; j++) {
  112. if (this[i] > this[j]) {
  113. oValue = this[i];
  114. this[i] = this[j];
  115. this[j] = oValue;
  116. }
  117. }
  118. }
  119. return this;
  120. };
  121.  
  122. // 获得数字数组中最大项
  123. Array.prototype.GetMax = function() {
  124. var oValue = 0;
  125. for (var i = 0; i < this.length; i++) {
  126. if (this[i] > oValue) {
  127. oValue = this[i];
  128. }
  129. }
  130. return oValue;
  131. };
  132.  
  133. // 获得数字数组中最小项
  134. Array.prototype.GetMin = function() {
  135. var oValue = 0;
  136. for (var i = 0; i < this.length; i++) {
  137. if (this[i] < oValue) {
  138. oValue = this[i];
  139. }
  140. }
  141. return oValue;
  142. };
  143.  
  144. // 获取当前时间的中文形式
  145. Date.prototype.GetCNDate = function() {
  146. var oDateText = '';
  147. oDateText += this.getFullYear().LenWithZero(4) + new Number(24180).ChrW();
  148. oDateText += this.getMonth().LenWithZero(2) + new Number(26376).ChrW();
  149. oDateText += this.getDate().LenWithZero(2) + new Number(26085).ChrW();
  150. oDateText += this.getHours().LenWithZero(2) + new Number(26102).ChrW();
  151. oDateText += this.getMinutes().LenWithZero(2) + new Number(20998).ChrW();
  152. oDateText += this.getSeconds().LenWithZero(2) + new Number(31186).ChrW();
  153. 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();
  154. return oDateText;
  155. };
  156. //扩展Date格式化
  157. Date.prototype.Format = function(format) {
  158. var o = {
  159. "M+": this.getMonth() + 1, //月份
  160. "d+": this.getDate(), //日
  161. "h+": this.getHours() % 12 == 0 ? 12 : this.getHours() % 12, //小时
  162. "H+": this.getHours(), //小时
  163. "m+": this.getMinutes(), //分
  164. "s+": this.getSeconds(), //秒
  165. "q+": Math.floor((this.getMonth() + 3) / 3), //季度
  166. "S": this.getMilliseconds() //毫秒
  167. };
  168. var week = {
  169. "0": "\u65e5",
  170. "1": "\u4e00",
  171. "2": "\u4e8c",
  172. "3": "\u4e09",
  173. "4": "\u56db",
  174. "5": "\u4e94",
  175. "6": "\u516d"
  176. };
  177. if (/(y+)/.test(format)) {
  178. format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  179. }
  180. if (/(E+)/.test(format)) {
  181. format = format.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "\u661f\u671f" : "\u5468") : "") + week[this.getDay() + ""]);
  182. }
  183. for (var k in o) {
  184. if (new RegExp("(" + k + ")").test(format)) {
  185. format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  186. }
  187. }
  188. return format;
  189. }
  190. Date.prototype.Diff = function(interval, objDate) {
  191. //若参数不足或 objDate 不是日期类型則回传 undefined
  192. if (arguments.length < 2 || objDate.constructor != Date) { return undefined; }
  193. switch (interval) {
  194. //计算秒差
  195. case 's': return parseInt((objDate - this) / 1000);
  196. //计算分差
  197. case 'n': return parseInt((objDate - this) / 60000);
  198. //计算時差
  199. case 'h': return parseInt((objDate - this) / 3600000);
  200. //计算日差
  201. case 'd': return parseInt((objDate - this) / 86400000);
  202. //计算周差
  203. case 'w': return parseInt((objDate - this) / (86400000 * 7));
  204. //计算月差
  205. case 'm': return (objDate.getMonth() + 1) + ((objDate.getFullYear() - this.getFullYear()) * 12) - (this.getMonth() + 1);
  206. //计算年差
  207. case 'y': return objDate.getFullYear() - this.getFullYear();
  208. //输入有误
  209. default: return undefined;
  210. }
  211. };
  212.  
  213. //检测是否为空
  214. Object.prototype.IsNullOrEmpty = function() {
  215. var obj = this;
  216. var flag = false;
  217. if (obj == null || obj == undefined || typeof (obj) == 'undefined' || obj == '') {
  218. flag = true;
  219. } else if (typeof (obj) == 'string') {
  220. obj = obj.trim();
  221. if (obj == '') {//为空
  222. flag = true;
  223. } else {//不为空
  224. obj = obj.toUpperCase();
  225. if (obj == 'NULL' || obj == 'UNDEFINED' || obj == '{}') {
  226. flag = true;
  227. }
  228. }
  229. }
  230. else {
  231. flag = false;
  232. }
  233. 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. Oracle读写分离架构

    读写分离是架构分布式系统的一个重要思想.不少系统整体处理能力并不能同业务的增长保持同步,因此势必会带来瓶颈,单纯的升级硬件并不能一劳永逸.针对业务类型特点,需要从架构模式上进行一系列的调整,比如业务模 ...

  2. iOS开发中调试小技巧

    对于软件开发而言,调试是必须学会的技能,重要性不言而喻.对于调试的技能,基本上是可以迁移的,也就是说你以前在其他平台上掌握的很多调试技巧,很多也是可以用在iOS开发中.不同语言.不同IDE.不同平台的 ...

  3. iOS - property,strong,weak,retain,assign,copy,nomatic 的区别及使用

    1:ARC环境下,strong代替retain.weak代替assign,xcode 4.2(ios sdk4.3和以下版本)和之前的版本使用的是retain和assign,是不支持ARC的.xcod ...

  4. Android Studio 生成Jar包时遇到的gradlew下载问题

    网上介绍说使用gradlew打包jar,可是输入gradlew makeJar后就开始download  XXX.zip,但是等了很久都没有完成.解决办法如下: 原文:http://blog.csdn ...

  5. CLR via C#(11)-无参属性、有参数属性(索引器)

    一. 无参属性 1. 定义属性 无参属性就是我们最常见的属性方式,在赋值时可以加入一定的逻辑判断.属性的定义其实不复杂,先看个直观的例子: 说明: 属性要定义名称和类型,且类型不能是void. 属性是 ...

  6. [插件]jQuery multiselect初始化及默认值修改

    下载地址:http://pan.baidu.com/s/1dE2daSD 1.Jquery多选下拉列表插件jquery multiselect功能介绍及使用 http://www.jb51.net/a ...

  7. WebService - 怎样提高WebService性能 大数据量网络传输处理

    直接返回DataSet对象 返回DataSet对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用Binary序列化后的字节数组 返回DataSetSurrogate对象用 ...

  8. 在帝都的Android面试感想

    #第一次面试赤子城Android开发实习生 关于面试的表现和感想 1.没有准备充分就去面试(这是大忌,也就直接决定了结果) 我去面试Android,但是却不知道很多关于Android的基础知识,就是明 ...

  9. Python 与 C# lambda表达式比较

    Python里到lambda表达式非常简约, lam =lambda a: a*2 --> lam(3) 6 在某些情况下确实挺好用到.但是相比C#到lambda表达式,还是不够强大(我不是在黑 ...

  10. Sencha Architect 安装与使用

    http://www.sencha.com/products/touch/ Sencha SDK Tools Advanced JavaScript and CSS Project Build Too ...