字符串概念:所有带单引号或者双引号的都叫做字符串
字符串声明:
1、通过new运算符去声明字符串
2、省略new声明字符串
3、字符串常量赋值
<script>
var str1 = new String(100);
alert(str1 + 20);
var str3 = "100";
alert(str3);
</script>
访问字符串中的字符:
字符串.length 访问字符串的个数
【注】中文 utf-8(三个字符表示一个汉字)
gbk(两个字符表示一个汉字) 在计数的时候都是当做一个汉字计数
访问字符串中单个字符:
字符串.charAt(下标) 【注】从0开始的
【注】字符串是只读,字符串一旦被声明就没有办法被修改,如果非要声明字符串,我们只能讲原字符串效果,重新生成新的字符串
<script>
var str = "hello北京";
alert(str.length);
alert(str.charAt(4));
alert(str[4]);
str[4] = "x";
alert(str);
</script>
字符串中的字符进行遍历也可以通过循环遍历
<script>
var str = "hello北京";
for(var i = 0; i <str.length;i++){
document.write(str[i]+"<br/>");
}
</script>
<script>
var str1=new String(100);
alert(typeof str1); //Object 对象 引用数据类型
var str2=String(100);
alert(typeof str2);//string
var str3="100";
alert(typeof str3);//string
</script>
<script>
document.write("hello".big()+"world".fontcolor("red"));
</script>
charCodeAt()
格式:字符串.charCodeAt(下标)
功能:访问字符串中对应下标字符的ASCLL码值。
String.fromCharCode();
格式:String.fromCharCode(码值1,码值2...);
功能:将传入的ASCLL码值转成对应的字符
返回值:组成的字符串
<script>
var str="hello";
alert(str.charCodeAt(1));
var str=String.fromCharCode(97,98,99,100);
alert(str);
</script>
indexOf()
格式:subStr.indexOf(subStr,start);
参数:第一个参数,查找的字符串
start从哪个下标开始去查找,如果不传入,默认从下标0开始查找
功能:在subStr中查找subStr第一次出现的位置,从start这个位置开始查找
返回值:-1 说明没有找到
<script>
var supStr="abcabcabc";
var subStr="abc";
var index=supStr.indexOf(subStr,4);
alert(index);
</script>
lastTndexOf()
格式:supStr.lastTndexOf(subStr);
功能:在supStr中查找subStr最后一次出现的位置
参数:第二个参数是开始查找的位置,查找的下标要从右往左数的
返回值: -1没有查找到
<script>
var supStr="abcabcabc";
var subStr="abc";
var index=supStr.lastIndexOf(subStr,4);
alert(index);
</script>
substring
格式:字符串.substring(start,end);
功能:将字符串中[start,end)提取这部分字符,生成一个新字符串
返回值:新生成的字符串
substr
格式:字符串.substr(start,length);
返回值:新生成的字符串
slice(是数组)
格式:字符串.slice(start,end);
<script>
var str="hello";
var newStr1=str.substring(1,4);
var newStr2=str.substr(1,3);
var newStr3=str.slice(1,4);
alert(str);
alert(newStr1);
alert(newStr2);
alert(newStr3);
</script>
replace()
格式:subStr.replace(oldStr,newStr);
功能:用newStr将oldStr替换掉,生成新的字符串
参数:
第一个参数传入的是字符串只能替换一次
第一个参数 正则表达式
/xxx/ig i忽略大小 g全局匹配
返回值:替换成的新字符串
<script>
var str="how are aRe are you";
//var newStr=str.replace("are","old are");
var newStr=str.replace(/are/gi,"old are");
alert(newStr);
alert(str);
</script>
split()字符串分割
格式:字符串.split(分割符,length)
参数:
第一个参数,用这个分割符对原字符串进行分割
第二个参数:控制返回的数组的元素格式,一般情况下不用
功能:用分割符对原字符串,进行字符串分割,将分割完毕以后的子串,放在数组中返回
返回值:数组
<script>
var str="how are you";
var arr1=str.split(" ");
var arr2=str.split(" ",2);
alert(arr1);
alert(arr2);
alert(str);
</script>
注意:相邻的两个分割符,会产生空字符串
<script>
var str="how are you";
var arr1=str.split(" ");
alert(arr1);
</script>
注意:分割符是空字符串“”
,直接将每一个字符,单独分割成子串,放在数组中返回
<script>
var str="how are you";
var arr1=str.split("");
alert(arr1);
</script>
toLowerCase()转成全小写
toUpperCase()转成全大写
<script>
var str="helloWORLD";
alert(str.toLowerCase());
alert(str.toUpperCase());
</script>
concat字符串拼接
<script>
var str1="hello";
var newStr1=str1.concat("world",100);
var newStr2=str1+"world"+100;
alert(newStr1);
alert(newStr2);
</script>
练习
<script>
var str="When T was young, I love a girl in neighbor class."
var start=str.indexOf("young");
var end=str.indexOf("girl")+"girl".length;
var newStr=str.substring(start,end);
alert(newStr);
</script>
思路:
1、字符串转成数组 split("");
2、数组转成字符串 join("")
<script>
function wordOfStr(str){
var arr=str.split("");
for(var i=1;i<arr.length;i++){
//判断
if(arr[i]>="A"&&arr[i]<="Z"){
//1、将大写字符转成小写
//2、插入一个空格
arr[i]=arr[i].toLowerCase();
arr.splice(i,0," ");
}
}
return arr.join("");
}
var arr=wordOfStr("HelloMyWorld");
alert(arr);
</script>