1、自己比较易混淆的splice()、substring()、substr()
slice方法:第一个参数指定子字符串开始位置,第二个参数表示子字符串最后一个字符后面的位置
substring方法:第一个参数指定子字符串开始位置,第二个参数表示子字符串最后一个字符后面的位置
substr方法:第一个参数指定子字符串开始位置,第二个参数表示返回的字符个数
这三个方法都会返回被操作字符串的一个子字符串,都接收一或两个参数 如果没有给这些方法传递第二个参数,则将字符串的长度作为结束位置。这些方法也不会修改字符串本身,只是返回一个基本类型的字符串值
2、位置方法
indexOf方法和lastIndexOf方法都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置,如果没有找到,则返回-1
indexOf方法是从字符串的开头向后搜索子字符串,lastIndexOf方法正好相反 这两个方法都可以接收两个参数:要查找的子字符串和查找的位置
3、split()
split方法是基于指定的字符,将字符串分割成字符串数组 当指定的字符为空字符串时,将会分隔整个字符串
<!DOCTYPE html> <html lang="en">
<head>
<meta charset="utf-8">
<title>split方法</title>
</head>
<body>
<script type="text/javascript">
/* split方法是基于指定的字符,将字符串分割成字符串数组 当指定的字符为空字符串时,将会分隔整个字符串 */
var str="red,blue,green,yellow";
console.log(str.split(","));//["red", "blue", "green", "yellow"]
console.log(str.split(",",2));//["red", "blue"] 第二个参数用来限制数组大小
console.log(str.split(/[^\,]+/));// ["", ",", ",", ",", ""]
//第一项和最后一项为空字符串是因为正则表达式指定的分隔符出现在了子字符串的开头,即"red"和"yellow"
//[^...] 不在方括号内的任意字符 只要不是逗号都是分隔符
</script>
</body>
</html>
4、字符方法
charAt方法和charCodeAt方法都接收一个参数,基于0的字符位置
charAt方法是以单字符字符串的形式返回给定位置的那个字符
charCodeAt方法获取到的不是字符而是字符编码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>字符方法</title> </head>
<body>
<script type="text/javascript">
var str="hello world";
console.log(str.charAt(1));//e
console.log(str.charCodeAt(1));//101
//还可以使用方括号加数字索引来访问字符串中特定的字符
console.log(str[1]);//e
</script>
</body>
</html>
5、trim():
trim方法用来删除字符串前后的空格
6、字符串大小写转换方法
toLowerCase());//hello world
toUpperCase());//HELLO WORLD
7、localeCompare方法
这个方法用于比较两个字符串
1.如果字符串在字母表中应该排在字符串参数之前,则返回一个负数
1.如果字符串等于字符串参数,则返回0
1.如果字符串在字母表中应该排在字符串参数之后,则返回一个正数
8、fromCharCode方法
fromCharCode方法是接收一或多个字符编码,然后将其转换为字符串
fromCharCode方法是String构造函数的一个静态方法
9、找到匹配字符串所在的各个位置
<script type="text/javascript"> /*找到匹配字符串所在的各个位置*/
var str="asadajhjkadaaasdasdasdasd";
var position=[];
var pos=str.indexOf("d");
while(pos>-1){
position.push(pos);
pos=str.indexOf("d",pos+1);
}
console.log(position);//[3, 10, 15, 18, 21, 24]
</script>
10、字符串去重
<script type="text/javascript">
//String.split() 执行的操作与 Array.join 执行的操作是相反的
//split() 方法用于把一个字符串分割成字符串数组。
//join方法用于将字符串数组连接成一个字符串
//如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
var str="aahhgggsssjjj";//这里字符串没有可以分隔的字符,所以需要使用空字符串作为分隔符
function unique(msg){
var res=[];
var arr=msg.split("");
//console.log(arr);
for(var i=0;i<arr.length;i++){
if(res.indexOf(arr[i])==-1){
res.push(arr[i]);
}
}
return res.join("");
}
console.log(unique(str));//ahgsj
</script>
11、判断字符串中字符出现的次数
<script type="text/javascript">
/*
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+"次");
}
</script>