JavaScript内置对象(一):Array数组
JavaScript内置对象(三):Math算数
JavaScript内置对象(四):Date时间
String 对象用于处理文本(字符串)。
var str = new String();
var str = 'I love red!';
属性 | 描述 |
---|---|
constructor | 对创建该对象的函数的引用 |
length | 字符串的长度 |
prototype | 允许您向对象添加属性和方法 |
var str = 'I love red!';
document.write(str.charAt(3)); //o
在字符串中使用[ ]取,如果索引值越界得到undefined,使用charAt超过字符串的索引值返回" "
var str = 'I love red!';
console.log(str.indexOf('e'));//5
var str = 'I love red!';
console.log(str.indexOf('e'));//8
var str = 'I love red!';
console.log(str.includes('h')); //false
var str = 'hello world!';
console.log(str.startsWith('hello'));//true
var str = 'hello world!';
console.log(str.endsWith('!'));//true
两种记法:
第一种记忆方法
★单个参数: 从指定的位置开始截取,一直到字符串的结尾处
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为负数时,返回空字符串。
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不会改变原字符串
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
var str = 'hello wOrld!';
//把字符串全部转为大写
console.log(str.toUpperCase()); //HELLO WORLD!
//把字符串全部转为小写
console.log(str.toLowerCase()); //hello world!
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);
W3C JavaScript String 对象
菜鸟教程 JavaScript 字符串(String) 对象