原创内容,转载请注明原文网址: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报错