字符串函数扩充

  1. /*
  2. ******************************************
  3.                         字符串函数扩充                                 
  4. ******************************************
  5. */
  6. /*
  7. ===========================================
  8. //去除左边的空格
  9. ===========================================
  10. */
  11. String.prototype.LTrim = function()
  12. {
  13.         return this.replace(/(^/s*)/g, "");
  14. }
  15. /*
  16. ===========================================
  17. //去除右边的空格
  18. ===========================================
  19. */
  20. String.prototype.Rtrim = function()
  21. {
  22.         return this.replace(/(/s*$)/g, "");
  23. }
  24. /*
  25. ===========================================
  26. //去除前后空格
  27. ===========================================
  28. */
  29. String.prototype.Trim = function()
  30. {
  31.         return this.replace(/(^/s*)|(/s*$)/g, "");
  32. }
  33. /*
  34. ===========================================
  35. //得到左边的字符串
  36. ===========================================
  37. */
  38. String.prototype.Left = function(len)
  39. {
  40.         if(isNaN(len)||len==null)
  41.         {
  42.                 len = this.length;
  43.         }
  44.         else
  45.         {
  46.                 if(parseInt(len)<0||parseInt(len)>this.length)
  47.                 {
  48.                         len = this.length;
  49.                 }
  50.         }
  51.         
  52.         return this.substr(0,len);
  53. }
  54. /*
  55. ===========================================
  56. //得到右边的字符串
  57. ===========================================
  58. */
  59. String.prototype.Right = function(len)
  60. {
  61.         if(isNaN(len)||len==null)
  62.         {
  63.                 len = this.length;
  64.         }
  65.         else
  66.         {
  67.                 if(parseInt(len)<0||parseInt(len)>this.length)
  68.                 {
  69.                         len = this.length;
  70.                 }
  71.         }
  72.         
  73.         return this.substring(this.length-len,this.length);
  74. }
  75. /*
  76. ===========================================
  77. //得到中间的字符串,注意从0开始
  78. ===========================================
  79. */
  80. String.prototype.Mid = function(start,len)
  81. {
  82.         return this.substr(start,len);
  83. }
  84. /*
  85. ===========================================
  86. //在字符串里查找另一字符串:位置从0开始
  87. ===========================================
  88. */
  89. String.prototype.InStr = function(str)
  90. {
  91.         if(str==null)
  92.         {
  93.                 str = "";
  94.         }
  95.         
  96.         return this.indexOf(str);
  97. }
  98. /*
  99. ===========================================
  100. //在字符串里反向查找另一字符串:位置0开始
  101. ===========================================
  102. */
  103. String.prototype.InStrRev = function(str)
  104. {
  105.         if(str==null)
  106.         {
  107.                 str = "";
  108.         }
  109.         
  110.         return this.lastIndexOf(str);
  111. }
  112. /*
  113. ===========================================
  114. //计算字符串打印长度
  115. ===========================================
  116. */
  117. String.prototype.LengthW = function()
  118. {
  119.         return this.replace(/[^/x00-/xff]/g,"**").length;
  120. }
  121. /*
  122. ===========================================
  123. //是否是正确的IP地址
  124. ===========================================
  125. */
  126. String.prototype.isIP = function()
  127. {
  128.         var reSpaceCheck = /^(/d+)/.(/d+)/.(/d+)/.(/d+)$/;
  129.         if (reSpaceCheck.test(this))
  130.         {
  131.                 this.match(reSpaceCheck);
  132.                 if (RegExp.$1 <= 255 && RegExp.$1 >= 0 
  133.                  && RegExp.$2 <= 255 && RegExp.$2 >= 0 
  134.                  && RegExp.$3 <= 255 && RegExp.$3 >= 0 
  135.                  && RegExp.$4 <= 255 && RegExp.$4 >= 0) 
  136.                 {
  137.                         return true;     
  138.                 }
  139.                 else
  140.                 {
  141.                         return false;
  142.                 }
  143.         }
  144.         else
  145.         {
  146.                 return false;
  147.         }
  148.    
  149. }
  150. /*
  151. ===========================================
  152. //是否是正确的长日期
  153. ===========================================
  154. */
  155. String.prototype.isLongDate = function()
  156. {
  157.         var r = this.replace(/(^/s*)|(/s*$)/g, "").match(/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2}) (/d{1,2}):(/d{1,2}):(/d{1,2})$/); 
  158.         if(r==null)
  159.         {
  160.                 return false
  161.         }
  162.         var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); 
  163.         return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
  164. }
  165. /*
  166. ===========================================
  167. //是否是正确的短日期
  168. ===========================================
  169. */
  170. String.prototype.isShortDate = function()
  171. {
  172.         var r = this.replace(/(^/s*)|(/s*$)/g, "").match(/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/); 
  173.         if(r==null)
  174.         {
  175.                 return false
  176.         }
  177.         var d = new Date(r[1], r[3]-1, r[4]); 
  178.         return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
  179. }
  180. /*
  181. ===========================================
  182. //是否是正确的日期
  183. ===========================================
  184. */
  185. String.prototype.isDate = function()
  186. {
  187.         return this.isLongDate()||this.isShortDate();
  188. }
  189. /*
  190. ===========================================
  191. //是否是手机
  192. ===========================================
  193. */
  194. String.prototype.isMobile = function()
  195. {
  196.         return /^0{0,1}13[0-9]{9}$/.test(this);
  197. }
  198. /*
  199. ===========================================
  200. //是否是邮件
  201. ===========================================
  202. */
  203. String.prototype.isEmail = function()
  204. {
  205.         return /^/w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0-9]+)*/.[A-Za-z0-9]+$/.test(this);
  206. }
  207. /*
  208. ===========================================
  209. //是否是邮编(中国)
  210. ===========================================
  211. */
  212. String.prototype.isZipCode = function()
  213. {
  214.         return /^[//d]{6}$/.test(this);
  215. }
  216. /*
  217. ===========================================
  218. //是否是有汉字
  219. ===========================================
  220. */
  221. String.prototype.existChinese = function()
  222. {
  223.         //[/u4E00-/u9FA5]為漢字﹐[/uFE30-/uFFA0]為全角符號
  224.         return /^[/x00-/xff]*$/.test(this);
  225. }
  226. /*
  227. ===========================================
  228. //是否是合法的文件名/目录名
  229. ===========================================
  230. */
  231. String.prototype.isFileName = function()
  232. {
  233.         return !/[/*/?/|:"<>]/g.test(this);
  234. }
  235. /*
  236. ===========================================
  237. //是否是有效链接
  238. ===========================================
  239. */
  240. String.prototype.isUrl = function()
  241. {
  242.         return /^http[s]?:([/w-]+/.)+[/w-]+([/w-./?%&=]*)?$/i.test(this);
  243. }
  244. /*
  245. ===========================================
  246. //是否是有效的身份证(中国)
  247. ===========================================
  248. */
  249. String.prototype.isIDCard = function()
  250. {
  251.         var iSum=0;
  252.         var info="";
  253.         var sId = this;
  254.         var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};
  255.         if(!/^/d{17}(/d|x)$/i.test(sId))
  256.         {
  257.                 return false;
  258.         }
  259.         sId=sId.replace(/x$/i,"a");
  260.         //非法地区
  261.         if(aCity[parseInt(sId.substr(0,2))]==null)
  262.         {
  263.                 return false;
  264.         }
  265.         var sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));
  266.         var d=new Date(sBirthday.replace(/-/g,"/"))
  267.         
  268.         //非法生日
  269.         if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))
  270.         {
  271.                 return false;
  272.         }
  273.         for(var i = 17;i>=0;i--) 
  274.         {
  275.                 iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11);
  276.         }
  277.         if(iSum%11!=1)
  278.         {
  279.                 return false;
  280.         }
  281.         return true;
  282. }
  283. /*
  284. ===========================================
  285. //是否是有效的电话号码(中国)
  286. ===========================================
  287. */
  288. String.prototype.isPhoneCall = function()
  289. {
  290.         return /(^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^/([0-9]{3,4}/)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/.test(this);
  291. }
  292. /*
  293. ===========================================
  294. //是否是数字
  295. ===========================================
  296. */
  297. String.prototype.isNumeric = function(flag)
  298. {
  299.         //验证是否是数字
  300.         if(isNaN(this))
  301.         {
  302.                 return false;
  303.         }
  304.         switch(flag)
  305.         {
  306.                 case null:        //数字
  307.                 case "":
  308.                         return true;
  309.                 case "+":        //正数
  310.                         return                /(^/+?|^/d?)/d*/.?/d+$/.test(this);
  311.                 case "-":        //负数
  312.                         return                /^-/d*/.?/d+$/.test(this);
  313.                 case "i":        //整数
  314.                         return                /(^-?|^/+?|/d)/d+$/.test(this);
  315.                 case "+i":        //正整数
  316.                         return                /(^/d+$)|(^/+?/d+$)/.test(this);                        
  317.                 case "-i":        //负整数
  318.                         return                /^[-]/d+$/.test(this);
  319.                 case "f":        //浮点数
  320.                         return                /(^-?|^/+?|^/d?)/d*/./d+$/.test(this);
  321.                 case "+f":        //正浮点数
  322.                         return                /(^/+?|^/d?)/d*/./d+$/.test(this);                        
  323.                 case "-f":        //负浮点数
  324.                         return                /^[-]/d*/./d$/.test(this);                
  325.                 default:        //缺省
  326.                         return true;                        
  327.         }
  328. }
  329. /*
  330. ===========================================
  331. //是否是颜色(#FFFFFF形式)
  332. ===========================================
  333. */
  334. String.prototype.IsColor = function()
  335. {
  336.         var temp        = this;
  337.         if (temp==""return true;
  338.         if (temp.length!=7) return false;
  339.         return (temp.search(//#[a-fA-F0-9]{6}/) != -1);
  340. }
  341. /*
  342. ===========================================
  343. //转换成全角
  344. ===========================================
  345. */
  346. String.prototype.toCase = function()
  347. {
  348.         var tmp = "";
  349.         for(var i=0;i<this.length;i++)
  350.         {
  351.                 if(this.charCodeAt(i)>0&this.charCodeAt(i)<255)
  352.                 {
  353.                         tmp += String.fromCharCode(this.charCodeAt(i)+65248);
  354.                 }
  355.                 else
  356.                 {
  357.                         tmp += String.fromCharCode(this.charCodeAt(i));
  358.                 }
  359.         }
  360.         return tmp
  361. }
  362. /*
  363. ===========================================
  364. //对字符串进行Html编码
  365. ===========================================
  366. */
  367. String.prototype.toHtmlEncode = function()
  368. {
  369.         var str = this;
  370.         str=str.replace(/&/g,"&");
  371.         str=str.replace(/</g,"<");
  372.         str=str.replace(/>/g,">");
  373.         str=str.replace(//'/g,"&apos;");
  374.         str=str.replace(//"/g,""");
  375.         str=str.replace(//n/g,"<br>");
  376.         str=str.replace(// /g," ");
  377.         str=str.replace(//t/g,"    ");
  378.         return str;
  379. }
  380. /*
  381. ===========================================
  382. //转换成日期
  383. ===========================================
  384. */
  385. String.prototype.toDate = function()
  386. {
  387.         try
  388.         {
  389.                 return new Date(this.replace(/-/g, "//"));
  390.         }
  391.         catch(e)
  392.         {
  393.                 return null;
  394.         }
  395. }
  396. 1.Asc(x),Chr(x):转换字符,字符码
  397. 2。Filter:搜寻字符串数组中的特定字符串
  398. 格式:v=filter(x,s[,include[,compare]])
  399. 实例:
  400. Dim x()={"kjwang","wangkj","peter"}
  401. Dim v
  402. v=filter(x,"kj") '结果v(0)="kjwang",v(1)="wangkj"
  403. v=filter(x,"kj",false) '结果v(0)="peter"
  404. v=filter(x,"kj",true,vbTextCompare) '不分大小写搜寻
  405. 3.InStr:寻找字符串位置(InstrRev:倒过来寻找字符串)
  406. 格式:
  407. v=instr(x,y) '从x字符串第1个字符起找出y字符串出现的位置
  408. v=instr(n,x,y) '从x字符串第n个字符起找出y字符串出现的位置
  409. 格式:
  410. v=InstrRev(x,s[,n[,Compare]])
  411. 4。Join:将字符串连接
  412. 格式:v=join(x[,d])’d为分隔字符
  413. 5。Len(x):计算字符串x的长度
  414. 格式:v=len(x)
  415. 6.Left(x,n):返回字符串x左边n个字符(对应Right(x,n))
  416. 7。Mid:读取字符串x中间的字符
  417. 格式:v=mid(x,n,m)
  418. 8。LTrim(x),RTim(x),Trim(x)去空白字符
  419. 9.Replace:字符串取代
  420. 格式:v=Replace(x,s,r)
  421. 实例:x="i saw a saw a saw"
  422. v=replace(x,"saw","so") 'v="i so a so a so"
  423. 10.Split:字符串分割
  424. 格式:v=split(s[,d])
  425. 实例:v=split("vb.net,iis6.0,asp.net",",")
  426. '结果v(0)="vb.net",v(1)="iis6.0",v(2)="asp.net"
  427. 11.StrReverse:反转字符串
  428. 实例:v=strreverse("kjwang") 'v="gnawjk"
  429. 12.UCase(x),LCase(x):变换英文字母的大小写
  430. 实例:x="hello,VB中文!"
  431. v=UCase(x) 'v="HELLO,VB中文!" 
  432. 1.取出日期时间
  433. -1)DateValue(x),TimeValue(x)
  434. 格式:v=DateValue(x) :取出的“日期”部分
  435.    v=timevalue(x) '类上
  436. -2)Year(x),Month(x),Day(x)
  437. 格式:v=Year(x)
  438.    v=Month(x)
  439.    v=Day(x)
  440.    Hour(x),Minute(x),Second(x):取出时,分,秒
  441. -3)DateSerial(Y,M,D):合并年、月、日成为日期
  442. 实例:Dim v
  443. v=DateSerial(1996,10,5) 'v=1996/10/5
  444.    TimeSerial(H,M,S):合并时、分、秒成为时间
  445. 2.Now:读取系统日期时间
  446. 格式:v=now
  447. 3.Timer:从凌晨12:00:00AM起所经过的秒数
  448. 格式:v=timer
  449. 4.DatePart(p,x):取出年、月、日等各部分的数值
  450. 实例:Dim X=#2/10/1996 16:45:30#
  451. v=DatePart("yyyy",X) 'v=1996年
  452. v=DatePart("m",X) 'v=2月
  453. v=DatePart("d",X) 'v=10日
  454. v=DatePart("h",X) 'v=16时
  455. v=DatePart("n",X) 'v=45分
  456. v=DatePart("s",X) 'v=30秒
  457. v=DatePart("q",X) 'v=1季(第一季,春季)
  458. v=DatePart("y",X) 'v=41天(1996年的第41天)
  459. v=DatePart("ww",X) 'v=6周(1996年的第6周)
  460. v=DatePart("w",X) 'v=7(第6周的第7天,即星期六)
  461. 5。DateAdd(p,n,x):加减若干时间后的新日期时间
  462. 格式:v=DateAdd(p,n,x) 'p值同上如:"yyyy""m"
  463. 实例:Dim x=#1/31/1996 16:45:30#
  464. v=dateadd("yyyy",-3,x) '减3年,v=1993/1/31 16:45:30
  465. 6.DateDiff(p,x1,x2):计算两日期时间的差值 'p值同上
  466. 实例:dim x1=#12/31/1996 16:45:30#
  467. x2=#2/10/1997 9:30:50#
  468. v=datediff("yyyy",x1,x2) 'v=1年
  469. 7。FormatDateTime:日期时间的格式化
  470. 格式:v=formatdateyime(x[,日期格式])
  471. 日期格式值:DateFormat.GeneralDate 、 DateFormat.LongDate、
  472. DateFotmat.ShortDate、DateFormat.LongTime、DateFormat.ShortTime
  473. 8.MonthName:返回月份名称
  474. 实例:v=monthname(5) 'v="五月"
  475. 9.WeekDayName:返回星期名称 ’用法同8.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值