[JavaScript] JavaScript 字符串操作函数大全 →→→→→进入此内容的聊天室

来自 , 2019-05-20, 写在 JavaScript, 查看 106 次.
URL http://www.code666.cn/view/efb3d8be
  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}$)|(^\([0-9]{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. }
  526. //javascript/6482

回复 "JavaScript 字符串操作函数大全"

这儿你可以回复上面这条便签

captcha