JS笔记(2) —— JS 字符串操作API

  1. concat
  2. 将两个或多个字符的文本组合起来,返回一个新的字符串。  
  3. var a = "hello";  
  4. var b = ",world";  
  5. var c = a.concat(b);  
  6. alert(c);  
  7. //c = "hello,world"  

  8. indexOf  
  9. 返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 。  
  10. var index1 = a.indexOf("l");  
  11. //index1 = 2  
  12. var index2 = a.indexOf("l",3);  
  13. //index2 = 3  

  14. charAt  
  15. 返回指定位置的字符。  
  16. var get_char = a.charAt(0);  
  17. //get_char = "h"  

  18. lastIndexOf  
  19. 返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1 。  
  20. var index1 = lastIndexOf('l');  
  21. //index1 = 3  
  22. var index2 = lastIndexOf('l',2)  
  23. //index2 = 2  

  24. match  
  25. 检查一个字符串匹配一个正则表达式内容,如果么有匹配返回 null。  
  26. var re = new RegExp(/^\w+$/);  
  27. var is_alpha1 = a.match(re);  
  28. //is_alpha1 = "hello"  
  29. var is_alpha2 = b.match(re);  
  30. //is_alpha2 = null  

  31. substring  
  32. 返回字符串的一个子串,传入参数是起始位置和结束位置。  
  33. var sub_string1 = a.substring(1);  
  34. //sub_string1 = "ello"  
  35. var sub_string2 = a.substring(1,4);  
  36. //sub_string2 = "ell"  

  37. substr  
  38. 返回字符串的一个子串,传入参数是起始位置和长度  
  39. var sub_string1 = a.substr(1);  
  40. //sub_string1 = "ello"  
  41. var sub_string2 = a.substr(1,4);  
  42. //sub_string2 = "ello" 

  43. replace  
  44. 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。  
  45. var result1 = a.replace(re,"Hello");  
  46. //result1 = "Hello"  
  47. var result2 = b.replace(re,"Hello");  
  48. //result2 = ",world"  

  49. search  
  50. 执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。  
  51. var index1 = a.search(re);  
  52. //index1 = 0  
  53. var index2 = b.search(re);  
  54. //index2 = -1  

  55. slice  
  56. 提取字符串的一部分,并返回一个新字符串(与 substring 相同)。  
  57. var sub_string1 = a.slice(1);  
  58. //sub_string1 = "ello"  
  59. var sub_string2 = a.slice(1,4);  
  60. //sub_string2 = "ell"  

  61. split  
  62. 通过将字符串划分成子串,将一个字符串做成一个字符串数组。  
  63. var arr1 = a.split("");  
  64. //arr1 = [h,e,l,l,o]  

  65. length  
  66. 返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。  
  67. var len = a.length();  
  68. //len = 5  

  69. toLowerCase  
  70. 将整个字符串转成小写字母。  
  71. var lower_string = a.toLowerCase();  
  72. //lower_string = "hello"  

  73. toUpperCase  
  74. 将整个字符串转成大写字母。  
  75. var upper_string = a.toUpperCase();  
  76. //upper_string = "HELLO"  
  77.   
  78. /* 
  79. ****************************************** 
  80. 字符串函数扩充                                 
  81. ****************************************** 
  82. */  
  83.   
  84. /* 
  85. =========================================== 
  86. //去除左边的空格 
  87. =========================================== 
  88.  
  89. */  
  90. String.prototype.LTrim = function(){  
  91.     return this.replace(/(^\s*)/g, "");  
  92. }  
  93.   
  94.   
  95. /* 
  96. =========================================== 
  97. //去除右边的空格 
  98. =========================================== 
  99. */  
  100. String.prototype.Rtrim = function(){  
  101.     return this.replace(/(\s*$)/g, "");  
  102. }  
  103.   
  104. /* 
  105. =========================================== 
  106. //去除前后空格 
  107. =========================================== 
  108. */  
  109. String.prototype.Trim = function(){  
  110.     return this.replace(/(^\s*)|(\s*$)/g, "");  
  111. }  
  112.   
  113. /* 
  114. =========================================== 
  115. //得到左边的字符串 
  116. =========================================== 
  117. */  
  118. String.prototype.Left = function(len){  
  119.   if(isNaN(len)||len==null){  
  120.       len = this.length;  
  121.   } else {  
  122.       if(parseInt(len)<0||parseInt(len)>this.length){  
  123.           len = this.length;  
  124.       }  
  125.   }  
  126.   return this.substr(0,len);  
  127. }  
  128.   
  129.   
  130. /* 
  131. =========================================== 
  132. //得到右边的字符串 
  133. =========================================== 
  134. */  
  135. String.prototype.Right = function(len){  
  136.    if(isNaN(len)||len==null){  
  137.        len = this.length;  
  138.    }else{  
  139.        if(parseInt(len)<0||parseInt(len)>this.length){  
  140.            len = this.length;  
  141.        }  
  142.    }  
  143.    return this.substring(this.length-len,this.length);  
  144. }  
  145.   
  146.   
  147. /* 
  148. =========================================== 
  149. //得到中间的字符串,注意从0开始 
  150. =========================================== 
  151. */  
  152. String.prototype.Mid = function(start,len){  
  153.    return this.substr(start,len);  
  154. }  
  155.   
  156.   
  157. /* 
  158. =========================================== 
  159. //在字符串里查找另一字符串:位置从0开始 
  160. =========================================== 
  161. */  
  162. String.prototype.InStr = function(str){  
  163.   if(str==null){  
  164.      str = "";  
  165.   }  
  166.   return this.indexOf(str);  
  167. }  
  168.   
  169. /* 
  170. =========================================== 
  171. //在字符串里反向查找另一字符串:位置0开始 
  172. =========================================== 
  173. */  
  174. String.prototype.InStrRev = function(str)  
  175. {  
  176.   
  177. if(str==null)  
  178. {  
  179. str = "";  
  180. }  
  181.   
  182. return this.lastIndexOf(str);  
  183. }  
  184.   
  185. /* 
  186. =========================================== 
  187. //计算字符串打印长度 
  188. =========================================== 
  189. */  
  190. String.prototype.LengthW = function()  
  191. {  
  192. return this.replace(/[^\x00-\xff]/g,"**").length;  
  193. }  
  194.   
  195. /* 
  196. =========================================== 
  197. //是否是正确的IP地址 
  198. =========================================== 
  199. */  
  200. String.prototype.isIP = function()  
  201. {  
  202.   
  203. var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;  
  204.   
  205. if (reSpaceCheck.test(this))  
  206. {  
  207. this.match(reSpaceCheck);  
  208. if (RegExp.$1 <= 255 && RegExp.$1 >= 0  
  209. && RegExp.$2 <= 255 && RegExp.$2 >= 0  
  210. && RegExp.$3 <= 255 && RegExp.$3 >= 0  
  211. && RegExp.$4 <= 255 && RegExp.$4 >= 0)  
  212. {  
  213. return true;      
  214. }  
  215. else  
  216. {  
  217. return false;  
  218. }  
  219. }  
  220. else  
  221. {  
  222. return false;  
  223. }  
  224.   
  225. }  
  226.   
  227.   
  228. /* 
  229. =========================================== 
  230. //是否是正确的长日期 
  231. =========================================== 
  232. */  
  233. String.prototype.isLongDate = function()  
  234. {  
  235. 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})$/);  
  236. if(r==null)  
  237. {  
  238. return false;  
  239. }  
  240. var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);  
  241. 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]);  
  242.   
  243. }  
  244.   
  245. /* 
  246. =========================================== 
  247. //是否是正确的短日期 
  248. =========================================== 
  249. */  
  250. String.prototype.isShortDate = function()  
  251. {  
  252. var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);  
  253. if(r==null)  
  254. {  
  255. return false;  
  256. }  
  257. var d = new Date(r[1], r[3]-1, r[4]);  
  258. return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);  
  259. }  
  260.   
  261. /* 
  262. =========================================== 
  263. //是否是正确的日期 
  264. =========================================== 
  265. */  
  266. String.prototype.isDate = function()  
  267. {  
  268. return this.isLongDate()||this.isShortDate();  
  269. }  
  270.   
  271. /* 
  272. =========================================== 
  273. //是否是手机 
  274. =========================================== 
  275. */  
  276. String.prototype.isMobile = function()  
  277. {  
  278. return /^0{0,1}13[0-9]{9}$/.test(this);  
  279. }  
  280.   
  281. /* 
  282. =========================================== 
  283. //是否是邮件 
  284. =========================================== 
  285. */  
  286. String.prototype.isEmail = function()  
  287. {  
  288. return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(this);  
  289. }  
  290.   
  291. /* 
  292. =========================================== 
  293. //是否是邮编(中国) 
  294. =========================================== 
  295. */  
  296.   
  297. String.prototype.isZipCode = function()  
  298. {  
  299. return /^[\\d]{6}$/.test(this);  
  300. }  
  301.   
  302. /* 
  303. =========================================== 
  304. //是否是有汉字 
  305. =========================================== 
  306. */  
  307. String.prototype.existChinese = function()  
  308. {  
  309. //[\u4E00-\u9FA5]為漢字﹐[\uFE30-\uFFA0]為全角符號  
  310. return /^[\x00-\xff]*$/.test(this);  
  311. }  
  312.   
  313. /* 
  314. =========================================== 
  315. //是否是合法的文件名/目录名 
  316. =========================================== 
  317. */  
  318. String.prototype.isFileName = function()  
  319. {  
  320. return !/[\\\/\*\?\|:"<>]/g.test(this);  
  321. }  
  322.   
  323. /* 
  324. =========================================== 
  325. //是否是有效链接 
  326. =========================================== 
  327. */  
  328. String.prototype.isUrl = function()  
  329. {  
  330. return /^http[s]?:\/\/([\w-]+\.)+[\w-]+([\w-./?%&=]*)?$/i.test(this);  
  331. }  
  332.   
  333.   
  334. /* 
  335. =========================================== 
  336. //是否是有效的身份证(中国) 
  337. =========================================== 
  338. */  
  339. String.prototype.isIDCard = function()  
  340. {  
  341. var iSum=0;  
  342. var info="";  
  343. var sId = this;  
  344.   
  345.  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:"国外"};  
  346.   
  347. if(!/^\d{17}(\d|x)$/i.test(sId))  
  348. {  
  349. return false;  
  350. }  
  351. sId=sId.replace(/x$/i,"a");  
  352. //非法地区  
  353. if(aCity[parseInt(sId.substr(0,2))]==null)  
  354. {  
  355. return false;  
  356. }  
  357.   
  358. var sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));  
  359.   
  360. var d=new Date(sBirthday.replace(/-/g,"/"))  
  361.   
  362. //非法生日  
  363. if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))  
  364. {  
  365. return false;  
  366. }  
  367. for(var i = 17;i>=0;i--)  
  368. {  
  369. iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11);  
  370. }  
  371.   
  372. if(iSum%11!=1)  
  373. {  
  374. return false;  
  375. }  
  376. return true;  
  377.   
  378. }  
  379.   
  380. /* 
  381. =========================================== 
  382. //是否是有效的电话号码(中国) 
  383. =========================================== 
  384. */  
  385. String.prototype.isPhoneCall = function()  
  386. {  
  387. return /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^ [09]3,4 [0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/.test(this);  
  388. }  
  389.   
  390.   
  391. /* 
  392. =========================================== 
  393. //是否是数字 
  394. =========================================== 
  395. */  
  396. String.prototype.isNumeric = function(flag)  
  397. {  
  398. //验证是否是数字  
  399. if(isNaN(this))  
  400. {  
  401.   
  402. return false;  
  403. }  
  404.   
  405. switch(flag)  
  406. {  
  407.   
  408. case null:        //数字  
  409. case "":  
  410. return true;  
  411. case "+":        //正数  
  412. return                /(^\+?|^\d?)\d*\.?\d+$/.test(this);  
  413. case "-":        //负数  
  414. return                /^-\d*\.?\d+$/.test(this);  
  415. case "i":        //整数  
  416. return                /(^-?|^\+?|\d)\d+$/.test(this);  
  417. case "+i":        //正整数  
  418. return                /(^\d+$)|(^\+?\d+$)/.test(this);                         
  419. case "-i":        //负整数  
  420. return                /^[-]\d+$/.test(this);  
  421. case "f":        //浮点数  
  422. return                /(^-?|^\+?|^\d?)\d*\.\d+$/.test(this);  
  423. case "+f":        //正浮点数  
  424. return                /(^\+?|^\d?)\d*\.\d+$/.test(this);                         
  425. case "-f":        //负浮点数  
  426. return                /^[-]\d*\.\d$/.test(this);                 
  427. default:        //缺省  
  428. return true;                         
  429. }  
  430. }  
  431.   
  432. /* 
  433. =========================================== 
  434. //是否是颜色(#FFFFFF形式) 
  435. =========================================== 
  436. */  
  437. String.prototype.IsColor = function()  
  438. {  
  439. var temp        = this;  
  440. if (temp==""return true;  
  441. if (temp.length!=7) return false;  
  442. return (temp.search(/\#[a-fA-F0-9]{6}/) != -1);  
  443. }  
  444.   
  445. /* 
  446. =========================================== 
  447. //转换成全角 
  448. =========================================== 
  449. */  
  450. String.prototype.toCase = function()  
  451. {  
  452. var tmp = "";  
  453. for(var i=0;i<this.length;i++)  
  454. {  
  455. if(this.charCodeAt(i)>0&&this.charCodeAt(i)<255)  
  456. {  
  457. tmp += String.fromCharCode(this.charCodeAt(i)+65248);  
  458. }  
  459. else  
  460. {  
  461. tmp += String.fromCharCode(this.charCodeAt(i));  
  462. }  
  463. }  
  464. return tmp  
  465. }  
  466.   
  467. /* 
  468. =========================================== 
  469. //对字符串进行Html编码 
  470. =========================================== 
  471. */  
  472. String.prototype.toHtmlEncode = function()  
  473. {  
  474. var str = this;  
  475.   
  476. str=str.replace(/&/g,"&");  
  477. str=str.replace(/</g,"<");  
  478. str=str.replace(/>/g,">");  
  479. str=str.replace(/\'/g,"'");  
  480. str=str.replace(/\"/g,""");  
  481. str=str.replace(/\n/g,"<br>");  
  482. str=str.replace(/\ /g," ");  
  483. str=str.replace(/\t/g,"    ");  
  484.   
  485. return str;  
  486. }  
  487.   
  488. /* 
  489. =========================================== 
  490. //转换成日期 
  491. =========================================== 
  492. */  
  493. String.prototype.toDate = function()  
  494. {  
  495. try  
  496. {  
  497. return new Date(this.replace(/-/g, "\/"));  
  498. }  
  499. catch(e)  
  500. {  
  501. return null;  
  502. }  
  503. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值