JS知识|JavaScript内置对象(二)(String字符串)


JavaScript内置对象(二):String字符串

  • 字符串String
    • 创建字符串
    • 属性
    • 方法
        • 字符串检索方法
        • 字符串截取方法
        • 字符串对象的方法
        • 字符串转换大小写的方法
        • 其他方法
    • 案例
    • 其他参考材料

JavaScript内置对象(一):Array数组
JavaScript内置对象(三):Math算数
JavaScript内置对象(四):Date时间
字符串String String 对象用于处理文本(字符串)。
创建字符串
  1. 使用Array构造函数,通过new关键字;例如:var str = new String();
  2. var str = 'I love red!';
属性
属性 描述
constructor 对创建该对象的函数的引用
length 字符串的长度
prototype 允许您向对象添加属性和方法
  1. str.length 获取字符串的长度,返回number。
  2. str.length-1 得到的是字符串中最后一个元素的索引值。
方法 字符串检索方法
  1. charAt():返回在指定位置的字符。
var str = 'I love red!'; document.write(str.charAt(3)); //o

在字符串中使用[ ]取,如果索引值越界得到undefined,使用charAt超过字符串的索引值返回" "
  1. charCodeAt():返回在指定的位置的字符的 Unicode 编码。
  2. indexOf():从一个字符串中搜索给定的子字符串,返回子字符串首次出现的位置;返回数值。如果在该字符串中没有这字符返回-1。
var str = 'I love red!'; console.log(str.indexOf('e')); //5

  1. lastIndexOf():从一个字符串中搜索给定的子字符串,返回子字符串最后一次出现的位置;返回数值。如果在该字符串中没有这字符返回-1。
var str = 'I love red!'; console.log(str.indexOf('e')); //8

  1. includes():如果当前字符串包含被搜寻的字符串,就返回 true;否则返回 false。
var str = 'I love red!'; console.log(str.includes('h')); //false

  1. startsWith():判断字符串是否以某个字符开头,返回布尔值。
var str = 'hello world!'; console.log(str.startsWith('hello')); //true

  1. endsWith():判断字符串是否以某个字符结尾,返回布尔值。
var str = 'hello world!'; console.log(str.endsWith('!')); //true

字符串截取方法
  1. slice(start,end):提取字符串的片断,并在新的字符串中返回被提取的部分。
  2. substring(start,end):提取字符串中两个指定的索引号之间的字符。
  3. substr(start,len):从起始索引号提取字符串中指定数目的字符。
两种记法:
第一种记忆方法
★单个参数: 从指定的位置开始截取,一直到字符串的结尾处
1.正数 从指定位置开始截取,一直到字符串的结尾处
2.负数 表示从字符串的结尾处向前截取n个字符
3.substring 单个参数小于0的数字当做0处理,不支持负数
★两个参数
slice 参数1:开始位置,参数2:结束位置(截取的时候不包含结束位置)。
substring 参数1:开始位置,参数2:结束位置(截取的时候不包含结束位置)。
substr 参数1:开始位置,参数2:截取的长度。
第二种记忆方法
1.slice 参数1(必需):开始位置,参数2(可选):结束位置(截取的时候不包含结束位置)。
当参数为负数时,会将传入的负值与字符串的长度相加。
2.substring 参数1:开始位置,参数2:结束位置(截取的时候不包含结束位置)。
语法和功能同slice();
区别:当参数为负值时,自动将参数转换为0;
substring()会将较小的数作为开始位置,将较大的数作为结束位置
3.substr 参数1(必需):开始位置,参数2(可选):截取的长度,省略时截取至字符串末尾。
当start为负数时,会将传入的负值与字符串的长度相加。
当len为负数时,返回空字符串。
字符串对象的方法
  1. split(separator,limit):把一个字符串分割成字符串数组,返回数组。limit参数可指定返回的数组的最大长度。
var str = 'I love red!'; console.log(str.split(' ')); //I,love,red! console.log(str.split('')); //I,l,o,v,e,r,e,d,! console.log(str.split(" ",2)); //I,love

  1. replace(regexp/substr,replacement):在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。返回字符串。
replace不会改变原字符串
var tel = "010-62971268,400-100-9098,010-86789889"; var newTel = tel.replace(","," "; ); console.log(tel); //010-62971268,400-100-9098,010-86789889 console.log(newTel); //010-62971268 400-100-9098 010-86789889

字符串转换大小写的方法
  1. toUpperCase():把字符串转换为大写。返回字符串。
  2. toLowerCase():把字符串转换为小写。返回字符串。
var str = 'hello wOrld!'; //把字符串全部转为大写 console.log(str.toUpperCase()); //HELLO WORLD! //把字符串全部转为小写 console.log(str.toLowerCase()); //hello world!

其他方法
  1. concat():拼接两个字符串,返回一个新的字符串。(不会改变原字符串)
var str = 'hello world!'; var newStr = str.concat('I love red!'); console.log(str); //hello world! console.log(newStr); //hello world!I love red!

2.trim():删除字符串两端的空白符,对字符串中间的空格不影响
var str = 'hello'; console.log(str.trim()); //hello

案例 去除字符串中所有空格
var str = 'hello'; //方法1 var res; for(var i = 0; i < str.length; i++){ if (i == 0) { res = str.replace(' ',''); } else { res = res.replace(' ',''); } } console.log('res='+res+'-'); console.log('str='+str); //方法2 for(var i = 0; i < str.length; i++){ if (str.includes(' ')) { str = str.replace(' ',''); i--; } } console.log('str='+str);

字符串去重
var str = "dcccbaaaaaabbbaa"; //方法1 var newStr = []; for (var i = 0; i < str.length; i++) { if (newStr.indexOf(str[i]) == -1) { newStr[newStr.length] = str[i]; } } console.log(newStr); //方法2 var arr = str.split(""); for(var i = 0; i < arr.length; i++){ for(var j = i + 1; j < arr.length; j++){ if(arr[i] == arr[j]){ arr.splice(j,1); j--; } } } console.log(arr); //方法3 var num = 0; var res = ''; for (var i = 0; i < str.length; i++) { if (res.indexOf(str.charAt(i)) === -1) { res += str.charAt(i); } } console.log(res); //方法4 var newStr = ''; for (var a = 0; a < str.length; a++) { if (newStr.indexOf(str[a]) == -1) { newStr = newStr.concat(str[a]); } } console.log(newStr);

【JS知识|JavaScript内置对象(二)(String字符串)】统计一个字符串中出现次数最多的字母是什么
var str = "dcccbaaaaaabbbaa"; //方法1 function num (str){ var a = []; var b = str.split(""); for (var i = 0; i < b.length; i++) { if (a.indexOf(b[i]) == -1) { a[a.length] = b[i]; } } console.log(a); var newArr = new Array(a.length); for (var i = 0; i < a.length; i++) { newArr[i] = 0; for (var j = 0; j < b.length; j++) { if (b[j] == a[i] && a[i]!=' ') { newArr[i]++; } } } console.log(newArr); var indexOfMax = 0; var tempMax = newArr[0]; for(var i = 0; i < newArr.length; i ++){ if(newArr[i] > tempMax){ tempMax = newArr[i]; indexOfMax = i; } } return a[indexOfMax]; } document.write(num(str)+'出现的次数最多'); //方法2 var arr = str.split(""); arr = arr.sort(); var n = 1; var arr1 = []; var maxmore = ''; for(var i = 0; i < arr.length; i++){ if(arr[i] == arr[i+1] && n > arr1.length-1){ maxmore = arr[i]; n++; } else{ arr1[n] = maxmore; n = 1; } } console.log('最多的字母'+maxmore); console.log('最多的字母次数'+ (arr1.length-1)); //方法3 var num = 0; var arr; for(var i = 0; i < str.length; i++){ if(str.split(str.charAt(i)).length > num && str.charAt(i) != ' '){ arr = str.charAt(i); num = str.split(str.charAt(i)).length; } } console.log(arr); //方法4 var obj = {}; for (var i = 0; i < str.length; i++) { var char = str[i]; if(obj[char]){ obj[char]++; }else{ obj[char] = 1; } } // console.dir(obj); var max = 0; var char; for (var key in obj) { var num = obj[key] if (num > max) { char = key; max = num; } } console.log("出现次数最多的字符是:"+char+",出现次数"+max);

统计一个字符串中字母a出现了多少次
var str = "learning how to use a computer and learning how to program one are two distinct activities."; // 方法1 var count = 0; for(var i = 0; i < str.length; i++){ if(str.includes("a")){ count++; str = str.replace("a","A"); } } console.log(count); //方法2 var newStr = []; var j = 0; for (var i in str) { if (str[i] == 'a') { newStr[j++] = str[i]; } } console.log(newStr.length); //方法3 var arr = str.split('a'); console.log(arr.length-1);

其他参考材料 W3C JavaScript String 对象
菜鸟教程 JavaScript 字符串(String) 对象

    推荐阅读