JS 字符串操作函数 往指定位置插入字符 删除指定位置字符 替换指定位置字符

  1. 插入 
    参数说明:str表示原字符串变量,flg表示要插入的字符串,sn表示要插入的位置
    function insert_flg(str,flg,sn){
        var newstr="";
        for(var i=0;i<str.length;i+=sn){
            var tmp=str.substring(i, i+sn);
            newstr+=tmp+flg;
        }
        return newstr;
    }

  2. 删除最后一位字符s=s.substring(0,s.length-1)

  3. 删除指定位置的字符 x代表要删除的位置 num代表删除字符的个数 str = str.substring(0,x) + str.substring(x+num,str.length);

  4. 删除指定字符
    var str="xxxxxxxxabcxxxxxxxxxxxx";
    var pattern = "abc";
    str = str.replace(new RegExp(pattern), "");
    console.log(str);
    运行结果就是xxxxxxxxxxxxxxxxxxxx

    指定位置替换字符串 
    <pre name="code" class="javascript">function changeStr(allstr,start,end,str,changeStr){ //allstr:原始字符串,start,开始位置,end:结束位  置,str:要改变的字,changeStr:改变后的字
     if(allstr.substring(start-1,end-1) == str){
          return allstr.substring(0,start-1)+changeStr+allstr.substring(end,allstr.length); 
     }else{
          allstr; 
       }
    }

  5. concat  
  6. 将两个或多个字符的文本组合起来,返回一个新的字符串。  
  7. var a = "hello";  
  8. var b = ",world";  
  9. var c = a.concat(b);  
  10. alert(c);  
  11. //c = "hello,world"  
  12. indexOf  
  13. 返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 。  
  14. var index1 = a.indexOf("l");  
  15. //index1 = 2  
  16. var index2 = a.indexOf("l",3);  
  17. //index2 = 3  
  18. charAt  
  19. 返回指定位置的字符。  
  20. var get_char = a.charAt(0);  
  21. //get_char = "h"  
  22. lastIndexOf  
  23. 返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1 。  
  24. var index1 = lastIndexOf('l');  
  25. //index1 = 3  
  26. var index2 = lastIndexOf('l',2)  
  27. //index2 = 2  
  28. match  
  29. 检查一个字符串匹配一个正则表达式内容,如果么有匹配返回 null。  
  30. var re = new RegExp(/^\w+$/);  
  31. var is_alpha1 = a.match(re);  
  32. //is_alpha1 = "hello"  
  33. var is_alpha2 = b.match(re);  
  34. //is_alpha2 = null  
  35. substring  
  36. 返回字符串的一个子串,传入参数是起始位置和结束位置。  
  37. var sub_string1 = a.substring(1);  
  38. //sub_string1 = "ello"  
  39. var sub_string2 = a.substring(1,4);  
  40. //sub_string2 = "ell"  
  41. substr  
  42. 返回字符串的一个子串,传入参数是起始位置和长度  
  43. var sub_string1 = a.substr(1);  
  44. //sub_string1 = "ello"  
  45. var sub_string2 = a.substr(1,4);  
  46. //sub_string2 = "ello"  
  47. replace  
  48. 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。  
  49. var result1 = a.replace(re,"Hello");  
  50. //result1 = "Hello"  
  51. var result2 = b.replace(re,"Hello");  
  52. //result2 = ",world"  
  53. search  
  54. 执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。  
  55. var index1 = a.search(re);  
  56. //index1 = 0  
  57. var index2 = b.search(re);  
  58. //index2 = -1  
  59. slice  
  60. 提取字符串的一部分,并返回一个新字符串(与 substring 相同)。  
  61. var sub_string1 = a.slice(1);  
  62. //sub_string1 = "ello"  
  63. var sub_string2 = a.slice(1,4);  
  64. //sub_string2 = "ell"  
  65. split  
  66. 通过将字符串划分成子串,将一个字符串做成一个字符串数组。  
  67. var arr1 = a.split("");  
  68. //arr1 = [h,e,l,l,o]  
  69. length  
  70. 返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。  
  71. var len = a.length();  
  72. //len = 5  
  73. toLowerCase  
  74. 将整个字符串转成小写字母。  
  75. var lower_string = a.toLowerCase();  
  76. //lower_string = "hello"  
  77. toUpperCase  
  78. 将整个字符串转成大写字母。  
  79. var upper_string = a.toUpperCase();  
  80. //upper_string = "HELLO"  
  81.   
  82. /* 
  83. ****************************************** 
  84. 字符串函数扩充                                 
  85. ****************************************** 
  86. */  
  87.   
  88. /* 
  89. =========================================== 
  90. //去除左边的空格 
  91. =========================================== 
  92.  
  93. */  
  94. String.prototype.LTrim = function()  
  95. {  
  96. return this.replace(/(^\s*)/g, "");  
  97. }  
  98.   
  99.   
  100. /* 
  101. =========================================== 
  102. //去除右边的空格 
  103. =========================================== 
  104. */  
  105. String.prototype.Rtrim = function()  
  106. {  
  107. return this.replace(/(\s*$)/g, "");  
  108. }  
  109.   
  110. /* 
  111. =========================================== 
  112. //去除前后空格 
  113. =========================================== 
  114. */  
  115. String.prototype.Trim = function()  
  116. {  
  117. return this.replace(/(^\s*)|(\s*$)/g, "");  
  118. }  
  119.   
  120. /* 
  121. =========================================== 
  122. //得到左边的字符串 
  123. =========================================== 
  124. */  
  125. String.prototype.Left = function(len)  
  126. {  
  127.   
  128. if(isNaN(len)||len==null)  
  129. {  
  130. len = this.length;  
  131. }  
  132. else  
  133. {  
  134. if(parseInt(len)<0||parseInt(len)>this.length)  
  135. {  
  136. len = this.length;  
  137. }  
  138. }  
  139.   
  140. return this.substr(0,len);  
  141. }  
  142.   
  143.   
  144. /* 
  145. =========================================== 
  146. //得到右边的字符串 
  147. =========================================== 
  148. */  
  149. String.prototype.Right = function(len)  
  150. {  
  151.   
  152. if(isNaN(len)||len==null)  
  153. {  
  154. len = this.length;  
  155. }  
  156. else  
  157. {  
  158. if(parseInt(len)<0||parseInt(len)>this.length)  
  159. {  
  160. len = this.length;  
  161. }  
  162. }  
  163.   
  164. return this.substring(this.length-len,this.length);  
  165. }  
  166.   
  167.   
  168. /* 
  169. =========================================== 
  170. //得到中间的字符串,注意从0开始 
  171. =========================================== 
  172. */  
  173. String.prototype.Mid = function(start,len)  
  174. {  
  175. return this.substr(start,len);  
  176. }  
  177.   
  178.   
  179. /* 
  180. =========================================== 
  181. //在字符串里查找另一字符串:位置从0开始 
  182. =========================================== 
  183. */  
  184. String.prototype.InStr = function(str)  
  185. {  
  186.   
  187. if(str==null)  
  188. {  
  189. str = "";  
  190. }  
  191.   
  192. return this.indexOf(str);  
  193. }  
  194.   
  195. /* 
  196. =========================================== 
  197. //在字符串里反向查找另一字符串:位置0开始 
  198. =========================================== 
  199. */  
  200. String.prototype.InStrRev = function(str)  
  201. {  
  202.   
  203. if(str==null)  
  204. {  
  205. str = "";  
  206. }  
  207.   
  208. return this.lastIndexOf(str);  
  209. }  
  210.   
  211. /* 
  212. =========================================== 
  213. //计算字符串打印长度 
  214. =========================================== 
  215. */  
  216. String.prototype.LengthW = function()  
  217. {  
  218. return this.replace(/[^\x00-\xff]/g,"**").length;  
  219. }  
  220.   
  221. /* 
  222. =========================================== 
  223. //是否是正确的IP地址 
  224. =========================================== 
  225. */  
  226. String.prototype.isIP = function()  
  227. {  
  228.   
  229. var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;  
  230.   
  231. if (reSpaceCheck.test(this))  
  232. {  
  233. this.match(reSpaceCheck);  
  234. if (RegExp.$1 <= 255 && RegExp.$1 >= 0  
  235. && RegExp.$2 <= 255 && RegExp.$2 >= 0  
  236. && RegExp.$3 <= 255 && RegExp.$3 >= 0  
  237. && RegExp.$4 <= 255 && RegExp.$4 >= 0)  
  238. {  
  239. return true;      
  240. }  
  241. else  
  242. {  
  243. return false;  
  244. }  
  245. }  
  246. else  
  247. {  
  248. return false;  
  249. }  
  250.   
  251. }  
  252.   
  253.   
  254. /* 
  255. =========================================== 
  256. //是否是正确的长日期 
  257. =========================================== 
  258. */  
  259. String.prototype.isLongDate = function()  
  260. {  
  261. 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})$/);  
  262. if(r==null)  
  263. {  
  264. return false;  
  265. }  
  266. var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);  
  267. 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]);  
  268.   
  269. }  
  270.   
  271. /* 
  272. =========================================== 
  273. //是否是正确的短日期 
  274. =========================================== 
  275. */  
  276. String.prototype.isShortDate = function()  
  277. {  
  278. var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);  
  279. if(r==null)  
  280. {  
  281. return false;  
  282. }  
  283. var d = new Date(r[1], r[3]-1, r[4]);  
  284. return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);  
  285. }  
  286.   
  287. /* 
  288. =========================================== 
  289. //是否是正确的日期 
  290. =========================================== 
  291. */  
  292. String.prototype.isDate = function()  
  293. {  
  294. return this.isLongDate()||this.isShortDate();  
  295. }  
  296.   
  297. /* 
  298. =========================================== 
  299. //是否是手机 
  300. =========================================== 
  301. */  
  302. String.prototype.isMobile = function()  
  303. {  
  304. return /^0{0,1}13[0-9]{9}$/.test(this);  
  305. }  
  306.   
  307. /* 
  308. =========================================== 
  309. //是否是邮件 
  310. =========================================== 
  311. */  
  312. String.prototype.isEmail = function()  
  313. {  
  314. return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(this);  
  315. }  
  316.   
  317. /* 
  318. =========================================== 
  319. //是否是邮编(中国) 
  320. =========================================== 
  321. */  
  322.   
  323. String.prototype.isZipCode = function()  
  324. {  
  325. return /^[\\d]{6}$/.test(this);  
  326. }  
  327.   
  328. /* 
  329. =========================================== 
  330. //是否是有汉字 
  331. =========================================== 
  332. */  
  333. String.prototype.existChinese = function()  
  334. {  
  335. //[\u4E00-\u9FA5]為漢字﹐[\uFE30-\uFFA0]為全角符號  
  336. return /^[\x00-\xff]*$/.test(this);  
  337. }  
  338.   
  339. /* 
  340. =========================================== 
  341. //是否是合法的文件名/目录名 
  342. =========================================== 
  343. */  
  344. String.prototype.isFileName = function()  
  345. {  
  346. return !/[\\\/\*\?\|:"<>]/g.test(this);  
  347. }  
  348.   
  349. /* 
  350. =========================================== 
  351. //是否是有效链接 
  352. =========================================== 
  353. */  
  354. String.prototype.isUrl = function()  
  355. {  
  356. return /^http[s]?:\/\/([\w-]+\.)+[\w-]+([\w-./?%&=]*)?$/i.test(this);  
  357. }  
  358.   
  359.   
  360. /* 
  361. =========================================== 
  362. //是否是有效的身份证(中国) 
  363. =========================================== 
  364. */  
  365. String.prototype.isIDCard = function()  
  366. {  
  367. var iSum=0;  
  368. var info="";  
  369. var sId = this;  
  370.   
  371.  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:"国外"};  
  372.   
  373. if(!/^\d{17}(\d|x)$/i.test(sId))  
  374. {  
  375. return false;  
  376. }  
  377. sId=sId.replace(/x$/i,"a");  
  378. //非法地区  
  379. if(aCity[parseInt(sId.substr(0,2))]==null)  
  380. {  
  381. return false;  
  382. }  
  383.   
  384. var sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));  
  385.   
  386. var d=new Date(sBirthday.replace(/-/g,"/"))  
  387.   
  388. //非法生日  
  389. if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))  
  390. {  
  391. return false;  
  392. }  
  393. for(var i = 17;i>=0;i--)  
  394. {  
  395. iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11);  
  396. }  
  397.   
  398. if(iSum%11!=1)  
  399. {  
  400. return false;  
  401. }  
  402. return true;  
  403.   
  404. }  
  405.   
  406. /* 
  407. =========================================== 
  408. //是否是有效的电话号码(中国) 
  409. =========================================== 
  410. */  
  411. String.prototype.isPhoneCall = function()  
  412. {  
  413. 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);  
  414. }  
  415.   
  416.   
  417. /* 
  418. =========================================== 
  419. //是否是数字 
  420. =========================================== 
  421. */  
  422. String.prototype.isNumeric = function(flag)  
  423. {  
  424. //验证是否是数字  
  425. if(isNaN(this))  
  426. {  
  427.   
  428. return false;  
  429. }  
  430.   
  431. switch(flag)  
  432. {  
  433.   
  434. case null:        //数字  
  435. case "":  
  436. return true;  
  437. case "+":        //正数  
  438. return                /(^\+?|^\d?)\d*\.?\d+$/.test(this);  
  439. case "-":        //负数  
  440. return                /^-\d*\.?\d+$/.test(this);  
  441. case "i":        //整数  
  442. return                /(^-?|^\+?|\d)\d+$/.test(this);  
  443. case "+i":        //正整数  
  444. return                /(^\d+$)|(^\+?\d+$)/.test(this);                         
  445. case "-i":        //负整数  
  446. return                /^[-]\d+$/.test(this);  
  447. case "f":        //浮点数  
  448. return                /(^-?|^\+?|^\d?)\d*\.\d+$/.test(this);  
  449. case "+f":        //正浮点数  
  450. return                /(^\+?|^\d?)\d*\.\d+$/.test(this);                         
  451. case "-f":        //负浮点数  
  452. return                /^[-]\d*\.\d$/.test(this);                 
  453. default:        //缺省  
  454. return true;                         
  455. }  
  456. }  
  457.   
  458. /* 
  459. =========================================== 
  460. //是否是颜色(#FFFFFF形式) 
  461. =========================================== 
  462. */  
  463. String.prototype.IsColor = function()  
  464. {  
  465. var temp        = this;  
  466. if (temp==""return true;  
  467. if (temp.length!=7) return false;  
  468. return (temp.search(/\#[a-fA-F0-9]{6}/) != -1);  
  469. }  
  470.   
  471. /* 
  472. =========================================== 
  473. //转换成全角 
  474. =========================================== 
  475. */  
  476. String.prototype.toCase = function()  
  477. {  
  478. var tmp = "";  
  479. for(var i=0;i<this.length;i++)  
  480. {  
  481. if(this.charCodeAt(i)>0&&this.charCodeAt(i)<255)  
  482. {  
  483. tmp += String.fromCharCode(this.charCodeAt(i)+65248);  
  484. }  
  485. else  
  486. {  
  487. tmp += String.fromCharCode(this.charCodeAt(i));  
  488. }  
  489. }  
  490. return tmp  
  491. }  
  492.   
  493. /* 
  494. =========================================== 
  495. //对字符串进行Html编码 
  496. =========================================== 
  497. */  
  498. String.prototype.toHtmlEncode = function()  
  499. {  
  500. var str = this;  
  501.   
  502. str=str.replace(/&/g,"&");  
  503. str=str.replace(/</g,"<");  
  504. str=str.replace(/>/g,">");  
  505. str=str.replace(/\'/g,"'");  
  506. str=str.replace(/\"/g,""");  
  507. str=str.replace(/\n/g,"<br>");  
  508. str=str.replace(/\ /g," ");  
  509. str=str.replace(/\t/g,"    ");  
  510.   
  511. return str;  
  512. }  
  513.   
  514. /* 
  515. =========================================== 
  516. //转换成日期 
  517. =========================================== 
  518. */  
  519. String.prototype.toDate = function()  
  520. {  
  521. try  
  522. {  
  523. return new Date(this.replace(/-/g, "\/"));  
  524. }  
  525. catch(e)  
  526. {  
  527. return null;  
  528. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值