• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

微信开发

js 字符串操纵函数

原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/weixinkaifa/2019/0925/658.html

 
走进企业培训前端行业已有两年之久,关于字符串的操纵也是粗茶淡饭了,但也总在查查找找,现在关于我这个强迫症患者首先发作了。
 
 
 
对字符串的操纵做以下整顿,空话未几说干脆走起来。
 
 
 
 
 
 
 
1、字符串转换
 
 
 
字符串转换是最底子的要求和事情,你可以将任何范例的数据都转换为字符串,你可以用底下三种方式的任何一种:
 
 
 
var num=24;
 
var mystr=num.toString();    //"24"
 
你一样可以这么做:
 
 
 
var num=24;
 
var mystr=String(num);    //"24"
 
大概,在简单点儿:
 
 
 
var num=24;
 
var mystr="" + num;    //"24"
 
 
 
 
 
2、字符串盘据
 
 
 
将字符串举行拆分回笼一个新的数组,JavaScript就给我们提供了一个最利便的函数:
 
 
 
var mystr="qingchenghuwoguoxiansheng,woaishenghuo,woaiziji";
 
var arr1=mystr.split(",");    //["qingchenghuwoguoxiansheng","woaishenghuo","woaiziji"];
 
var arr2=mystr.split("");        //["q","i","n","g","c","h","e","n","g","h","u","w","o","g","u","o","x","i","a","n","s","h","e","n","g",",","w","o","a","i","s","h","e","n","g","h","u","o",",","w","o","a","i","z","i","j","i"];
 
split()的第二个参数,显露回笼的字符串数组的最大长度
 
 
 
var mystr="qingchenghuwoguoxiansheng,woaishenghuo,woaiziji";
 
var arr1=mystr.split(",",2); //["qingchenghuwoguoxiansheng","woaishenghuo"];
 
var arr2=mystr.split("",8); //["q","i","n","g","c","h","e","n"];
 
 
 
 
 
3、字符串替代
 
 
 
仅仅查找到字符串并不会是问题的休止,普通问题还时常会要求常州软件技术培训去举行替代操纵,那就继续看以下代码:
 
 
 
var mystr="wozaijinxingzifuchuantihuancaozuo,zifuchuantihuano";
 
var replaceStr=mystr.replace("zifuchuan"," ");    //wozaijinxing tihuancaozuo,zifuchuantihuano
 
var replaceStr=mystr.replace(/zifuchuan/," ");    //wozaijinxing tihuancaozuo,zifuchuantihuano
 
var replaceStr=mystr.replace(/zifuchuan/g," ");    //wozaijinxing tihuancaozuo, tihuano
 
默认只举行第一次般配操纵的替代,想要全局替代,需求置上正则全局标识g
 
 
 
 
 
 
 
4、获取字符串长度
 
 
 
获取字符串的长度时常会用到,方式很简单:
 
 
 
var mystr="qingchenghuwoguoxiansheng,woaishenghuo,woaiziji";
 
var arrLength=mystr.length;    //47
 
 
 
 
 
5、盘问子字符串
 
 
 
校验字符串内是否包含子串,很多开发者会应用for轮回来校验,而忘记了JavaScript提供子串函数:
 
 
 
indexOf(),该Of() 方式对大小写敏感。回笼字符串中一个子串第一处出现的索引(从左到右搜刮)。要是没有般配项,回笼 -1 。
 
var mystr="Hello world!";
 
var index=mystr.indexOf("llo");    //2
 
var index1=mystr.indexOf("l");    //2
 
var index2=mystr.indexOf("l",3);    //3
 
lastIndexOf(),该方式对大小写敏感。回笼字符串中一个子串最后一处出现的索引(从右到左搜刮),要是没有般配项,回笼 -1 。
 
var mystr="Hello world!";
 
var index=mystr.lastIndexOf("llo");    //2
 
var index1=mystr.lastIndexOf("l");    //9
 
var index2=mystr.lastIndexOf("l",4);    //3
 
 
 
 
 
6、回笼指定位置的字符或其字符编码值
 
 
 
查找给定位置的字符,可以应用以下函数:
 
 
 
var mystr="Hello World!";
 
var index=mystr.charAt(7);    //o
 
一样,它的一个兄弟函数即是查找对应位置的字符编码值,如常州平台运营
 
 
 
var mystr="Hello World!";
 
var charCode=mystr. charCodeAt(7);    //111
 
 
 
 
 
7、 字符串般配
 
 
 
可以干脆通过字符串举行般配,也能够通过正则举行般配,可能需求你对正则表白式有必然的打听,先来看看match()函数:
 
 
 
复制代码
 
var mystr="hi,mynameisguoxiansheng6,33iswho?";
 
var matchStr=mystr.match("guo");    //guo
 
var matchStr1=mystr.match("Guo");    //null
 
var regexp1=/\d+/g;
 
var regexp2=/guo/g;
 
var regexp3=/guo/;
 
var matchStr2=mystr.match(regexp1);    //["6","33"]
 
var matchStr3=mystr.match(regexp2);    //["guo"]
 
var matchStr3=mystr.match(regexp3);    //["guo",index:11,input:"hi,mynameisguoxiansheng6,33iswho?"]
 
matchStr3.index    //11
 
matchStr3.input    //hi,mynameisguoxiansheng6,33iswho?
 
复制代码
 
留意:1.此处应用字符串干脆举行般配,被般配的字符串内包含要般配的字符串时,回笼所要般配的字符串。
 
 
 
   2.要是应用正则般配字符串时,要是正则表白式没有 g (全局标识)标记,回笼与正则般配相像的后果。并且回笼的数组拥有一个分外的 input 属性,该属性包含原始字符串。另外,还拥有一个 index 属性,该属性显露般配后果在被字符串中的索引(以0首先)。要是正则表白式包含 g 标记,则该方式回笼般配字符串的数组。
 
 
 
再来看看应用exec()函数: 
 
 
 
复制代码
 
var mystr="hi,mynameisguoxiansheng6,33iswho?";
 
var regexp1=/guo/g;
 
var matchStr=regexp1.exec(mystr);  //["guo"]
 
var regexp2=/guo/;
 
var matchStr1=regexp2.exec(mystr);    //["guo",index:11,input:"hi,mynameisguoxiansheng6,33iswho?"]
 
matchStr1.index    //11
 
matchStr1.input    //hi,mynameisguoxiansheng6,33iswho?
 
复制代码
 
简单吧,仅仅是把正则和字符串换了个位置,即exec()函数是在正则上挪用,传递字符串的参数。关于上头两个方式,般配的后果都是回笼第一个般配胜利的字符串,要是般配失利则回笼null。
 
 
 
再来看一个相似的函数search():
 
 
 
var mystr = "hi,mynameisguoxiansheng6,33iswho?";
 
var regexp1 = /guo/;
 
var matchStr = mystr.search(regexp1);    //11
 
举行正则般配查找。要是查找胜利,回笼字符串中般配的索引值。不然回笼 -1
 
 
 
 
 
 
 
8、字符串连接
 
 
 
可以将两个或多个字符串举行加法操纵,同时可以应用JavaScript提供的concat函数:
 
 
 
先看加法操纵举行字符串连接:
 
 
 
var mystr1="Hello";
 
var mystr2="world!";
 
var newStr=mystr1+" "+mystr2;    //Hello world!
 
是不是很简单呀,那继续看看concat函数吧:
 
 
 
var mystr1="Hello";
 
var mystr2=" world,";
 
var mystr3="Hello";
 
var mystr4="guoxiansheng";
 
var newStr=mystr1.concat(mystr2+mystr3+" "+mystr4);    //Hello world,Hello guoxiansheng
 
concat()函数可以有多个参数,传递常州微信公众平台多个字符串,拼接多个字符串。
 
 
 
 
 
 
 
9、字符串切割和提取
 
 
 
有三种可以从字符串中抽取和切割的方式:
 
 
 
第一种,slice()函数:
 
 
 
var mystr="hello world!";
 
var sliceStr1=mystr.slice(-3);    //ld!
 
var sliceStr2=mystr.slice(-3,-1);    //ld
 
var sliceStr3=mystr.slice(3);    //lo world!
 
var sliceStr4=mystr.slice(3,7);    //lo w
 
第二种:substring()函数:
 
 
 
var mystr="hello world!";
 
var sliceStr1=mystr.substring(3);    //lo world!
 
var sliceStr2=mystr.substring(3,7);    //lo w
 
第三种:substr()函数:
 
 
 
var mystr="hello world!";
 
var sliceStr1=mystr.substr(3);    //lo world!
 
var sliceStr2=mystr.substr(3,7);    //lo wo
 
注:1.slice() 可以为负数,要是肇始位置为负数,则从字符串最后一名向前找对应位数并且向后取结束位置,要是为正整数则畴昔以后取肇始位置到结束位置。
 
  2.substring()只能非负整数,截取肇始结束位置同slice()函数一致。
 
 
 
  3.substr()与第一、第二种函数差别,从肇始位置首先截取,结束位置为第二个参数截取的字符串最大长度。
 
 
 
以上三种函数未填第二参数时,自动截取肇始位置到字符串末端。
 
 
 
 
 
 
 
10、字符串大小写转换
 
 
 
var mystr="Hello World!";
 
var lowCaseStr=mystr.toLowerCase();    //hello world!
 
var upCaseStr=mystr. toUpperCase();    //HELLO WORLD!
 
 
 
 
 
  11、字符串去空格
 
 
 
trim方式用来删除字符串前后的空格 
 
 
 
var mystr="     hello world      ";  
 
var trimStr=mystr.trim();    //hello world
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
常用的字符串操纵
 
 
 
1、字符串去重
 
 
 
复制代码
 
var str="aahhgggsssjjj";
 
function removeRepeat(msg){  
 
    var res=[];  
 
    var arr=msg.split("");  
 
    for(var i=0;i<arr.length;i++){  
 
        if(res.indexOf(arr[i])==-1){  
 
            res.push(arr[i]);  
 
        }  
 
    }  
 
    return res.join("");  
 
}  
 
removeRepeat(str);    //ahgsj
 
复制代码
 
 
 
 
 
2、校验字符串中字符出现的次数
 
 
 
复制代码
 
/*  
 
    1.先实现字符串去重  
 
    2.而后对去重后的数组用for轮回操纵,分别与原始数组中各个值举行对照,要是相称则count++,轮回结束将count留存在sum数组中,而后将count重置为0  
 
    3.如许一来去重后的数组中的元素在原数组中出现的次数与sum数组中的元素是逐一对应的  
 
*/  
 
var str="aacccbbeeeddd";  
 
var sum=[];  
 
var res=[];  
 
var count=0;  
 
var arr=str.split("");  
 
for(var i=0;i<arr.length;i++){  
 
    if(res.indexOf(arr[i])==-1){  
 
        res.push(arr[i]);  
 
    }  
 
}  
 
for(var i=0;i<res.length;i++){  
 
    for(var j=0;j<arr.length;j++){  
 
        if(arr[j]==res[i]){  
 
            count++;  
 
        }  
 
    }  
 
    sum.push(count);  
 
    count=0;  
 
}  
 
console.log(res);    //["a", "c", "b", "e", "d"]  
 
for(var i=0;i<res.length;i++){  
 
    var str=(sum[i]%2==0)?"偶数":"奇数";  
 
    console.log(res[i]+"出现了"+sum[i]+"次");  
 
    console.log(res[i]+"出现了"+str+"次");  
 
}  
 
复制代码
 
 
 

上篇:上一篇:小法式button配置open-type若何放分享图标
下篇:下一篇:小程序 connect ECONNREFUSED 127.0.0.1:64412报错