JavaScript内置对象(二):String字符串
- 字符串String
-
- 创建字符串
- 属性
- 方法
-
-
- 字符串检索方法
- 字符串截取方法
- 字符串对象的方法
- 字符串转换大小写的方法
- 其他方法
-
- 案例
- 其他参考材料
JavaScript内置对象(一):Array数组
JavaScript内置对象(三):Math算数
JavaScript内置对象(四):Date时间
字符串String String 对象用于处理文本(字符串)。
创建字符串
- 使用Array构造函数,通过new关键字;例如:
var str = new String();
var str = 'I love red!';
属性 | 描述 |
---|---|
constructor | 对创建该对象的函数的引用 |
length | 字符串的长度 |
prototype | 允许您向对象添加属性和方法 |
- str.length 获取字符串的长度,返回number。
- str.length-1 得到的是字符串中最后一个元素的索引值。
- charAt():返回在指定位置的字符。
var str = 'I love red!';
document.write(str.charAt(3));
//o
在字符串中使用[ ]取,如果索引值越界得到undefined,使用charAt超过字符串的索引值返回" "
- charCodeAt():返回在指定的位置的字符的 Unicode 编码。
- indexOf():从一个字符串中搜索给定的子字符串,返回子字符串首次出现的位置;返回数值。如果在该字符串中没有这字符返回-1。
var str = 'I love red!';
console.log(str.indexOf('e'));
//5
- lastIndexOf():从一个字符串中搜索给定的子字符串,返回子字符串最后一次出现的位置;返回数值。如果在该字符串中没有这字符返回-1。
var str = 'I love red!';
console.log(str.indexOf('e'));
//8
- includes():如果当前字符串包含被搜寻的字符串,就返回 true;否则返回 false。
var str = 'I love red!';
console.log(str.includes('h'));
//false
- startsWith():判断字符串是否以某个字符开头,返回布尔值。
var str = 'hello world!';
console.log(str.startsWith('hello'));
//true
- endsWith():判断字符串是否以某个字符结尾,返回布尔值。
var str = 'hello world!';
console.log(str.endsWith('!'));
//true
字符串截取方法
- slice(start,end):提取字符串的片断,并在新的字符串中返回被提取的部分。
- substring(start,end):提取字符串中两个指定的索引号之间的字符。
- 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为负数时,返回空字符串。
- 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
- 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
字符串转换大小写的方法
- toUpperCase():把字符串转换为大写。返回字符串。
- toLowerCase():把字符串转换为小写。返回字符串。
var str = 'hello wOrld!';
//把字符串全部转为大写
console.log(str.toUpperCase());
//HELLO WORLD!
//把字符串全部转为小写
console.log(str.toLowerCase());
//hello world!
其他方法
- 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) 对象
推荐阅读
- javascript|JavaScript内置对象-String对象/Number对象/Math对象/Date对象/案例-制作年历-(案例结合版)
- 总结|JavaScript内置对象总结
- JavaScript基础|JavaScript内置对象Math详解
- JavaScript|内置对象(String、Date、Math对象)
- 硬泡|javascript 内置对象Math总结及其案例
- uniapp|uniapp和小程序如何分包,详细步骤手把手(图解)
- vue|Vue | 原生audio样式不好看,自己写一个简易的音乐播放控件,实现播放暂停可拖动
- javascript|自己用js做一个搜索栏,超级简单
- 二分法的左右边界