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

  1. 原文:http://blog.csdn.net/yeping090815/article/details/45191411
  2. 插入 
    参数说明: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;
    }

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

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

  6. 删除指定字符
    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; 
       }
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值