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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值