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 = ' hel lo ';
console.log(str.trim()); //hel lo
案例
去除字符串中所有空格
var str = ' hel lo ';
//方法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);
统计一个字符串中出现次数最多的字母是什么
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);
本文全面介绍了JavaScript中的字符串对象,包括创建、属性、方法等。详细讲解了字符串检索、截取、大小写转换、拼接、去重及统计等功能,提供了多个实用案例。
839

被折叠的 条评论
为什么被折叠?



