js字符串对象的操作方法,含(操作字符串案例)

一、字符串(String)使用长度属性length来计算字符串的长度

var txt = "Hello World!";
console.log(txt.length); //12		
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
console.log(txt.length); //26

二、字符串大小写转换方法

1.大写转换为小写

var str1 = "AbcdEfgh";
var str2 = str1.toLowerCase(); //转换为小写
console.log(str2); //结果为"abcdefgh"

1.小写转换为大写

var str1 = "AbcdEfgh";
var str3 = str1.toUpperCase(); //转换为大写
console.log(str3) //结果为"ABCDEFGH"

三、提取指定位置字符

1.stringObj.charAt(index):返回字符串中指定下标(位置)的字符。

var str1 = "JavaScript网页教程";
var str2 = str1.charAt(12); //
console.log(str2) //教
charAt()案例1:统计一个字符串中所有字母出现的次数
var str = "whatOareYyouYnoYshaHleiHoHmyHgod";
var obj = {};
for (let i = 0; i < str.length; i++) {
let j = str.charAt(i);
if (obj[j]) { //obj['字符串'],对象属性名不确定时要用该形式
		obj[j]++;
} else {
		obj[j] = 1;
		}
}
console.log(obj) //{H: 4,O: 1,Y: 3,a: 3,d: 1,e: g: 1,h: 2,i: 1,l: 1,m: 1,n: 1,o: 4,r: 1,s: 1,t: 1,u: 1,w: 1,y: 2}

charAt()案例2:统计一个字符串中特定字母出现的位置
//统计这个字符串中所有的 o 出现的位置(索引)
var str = "hello wod odd ott fbo nhyo";
var arr = [];
for(let i = 0;i<str.length;i++){
	if(str.charAt(i)=='o'){
		arr.push(i);
	}
}
console.log(arr);//[4,7,10,14,20,25]

2.stringObj.charCodeAt(index):返回字符串中指定索引(位置)的字符 unicode 编码。

  • unicode一般指统一码,也叫万国码、单一码(Unicode)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
var str1 = "JavaScript网页教程";
var str3 = str1.charCodeAt(12);
console.log(str3); //25945

四、查询指定字符串

1. stringObj.indexOf(findstr, index):返回指定文本在字符串中首次出现的索引

  • 返回findstr在stringObj中首次出现的其首字符的位置索引索引。
  • findstr是查找的字符串。
  • index是开始查找的位置索引,index省略则代表从0开始找。
  • 0 是字符串中的第一个位置,1 是第二个,2 是第三个…
  • 如果没有找到,则返回-1。
var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China");
console.log(pos); //17
var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("USA");
console.log(pos); //-1
var str = "The full name of China is the People's Republic of China.";
var pos = str.indexOf("China", 18);
console.log(pos); //51

indexof()案例:统计含有特定字母的字符串个数

//统计数组中包含“a”或“A”的字符串的个数。
var array= ["America","Greece","Britain","Canada","China","Egypt"];
var num = 0;
for(let i = 0;i<array.length;i++){
		if(array[i].indexOf('A') != -1 || array[i].indexOf('a') != -1){
			num++;
		}
}
console.log(num);//4

2.stringObj.lastIndexOf(findstr,index):返回指定文本在字符串中最后一次出现的索引

  • 即返回findstr在stringObj中最后一次出现的其首字符的索引。
  • findstr是查找的字符串。
  • index是结束查找的位置索引,index省略则代表到字符串末尾结束
  • 0 是字符串中的第一个位置,1 是第二个,2 是第三个…
  • 如果没有找到,则返回-1。
var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("China");
console.log(pos); //51
var str = "The full name of China is the People's Republic of China.";
var pos = str.lastIndexOf("USA");
console.log(pos); //-1
var pos = str.lastIndexOf("China", 50);
console.log(pos); //17
var pos = str.lastIndexOf('China', 53);
console.log(pos); //51 虽然已经结束查找但仍认为找到了! 但是indexOf不会出现这个情况。

3.stringObj.search(findstr):搜索特定值的字符串,并返回匹配的位置

  • 用法与indexof相同,不过它只有一个参数

indexOf()和search() 的区别

  1. search()的参数可以是正则表达式,而indexOf()的参数只是普通的字符串。indexOf()是比search()更加底层的 方法。
  2. 如果只是对一个具体字符串来查找,那么使用indexOf()的系统资源消耗更小,效率更高;如果查找具有某些特征的字符串(例如查找以a开头,后面是数字的字符串),那么indexOf()就无能为力,必须要使用正则表达式和search()方法了。

五、提取部分字符串————有三种提取部分字符串的方法:slice(start,end);substring(start, end);substr(start, length);

1.slice(start,end)

  • 提取字符串的某个部分,返回被提取的部分字符串,含头不含尾。
  • 该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。
var str = "Apple, Banana, Mango";
var str1 = str.slice(7, 13);
console.log(str1); //Banana
var str2 = str.slice(7); //如果省略第二个参数,则该方法将截取字符串的剩余部分
console.log(str2); //Banana, Mango
console.log(str.slice(-13, -7)); //Banana
//如果两个参数为负,则从字符串的结尾开始计数。截取字符串中倒数位置7到倒数位置13的片段,含头不含尾
console.log(str.slice(-13)); //Banana, Mango
//如果某个参数为负,则从字符串的结尾开始计数。截取字符串中位置 -13 到结尾的片段 

2.substring(start,end)

  • 用法与 slice()方法相同,不同之处在于 substring() 无法接受负的索引,语法通过,但结果不正常
    • (1)substring 方法使用 start 和 end 两者中的较小值作为子字符串的起始点
    • (2) start 或 end 为 NaN 或者负数, 那么将其替换为0

3.substr(start,length)

  • 类似于 slice()方法,不同之处在于第二个参数规定被提取部分的长度。第二个参数不能为负,因为它指的是长度。当length为0或者负数,返回空字符串
var str = "Apple, Banana, Mango";
var res = str.substr(7, 6);
console.log(res); //Banana (含头不含尾,长度为6的字符串)		
/* 2.如果省略第二个参数,则该方法将截取字符串的剩余部分 */
var res2 = str.substr(7);
console.log(res2); //Banana, Mango			
/* 3.如果某个参数为负,则从字符串的结尾开始计数。截取字符串中位置 -13 开始往后总共 6 个字符片段 */
var res3 = str.substr(-13, 6);
console.log(res3); //Banana ("含头不含尾")		
/* 4.如果某个参数为负,则从字符串的结尾开始计数。截取字符串中位置 -13 到结尾的片段 */
var res4 = str.substr(-13);
console.log(res4); //Banana, Mango ("含头不含尾")

六、删除字符串两端的空白符——stringObj.trim()

var str = "       Hello World!        ";
console.log(str.trim()); //"Hello World!"

七、连接字符串——stringObj.concat()

//stringObj.concat(str1,str2,...,strN):连接两个或多个字符串
var text1 = "Hello";
var text2 = "World";
var text3 = text1.concat(" ", text2); //将"Hello"、" "、"World"这三个字符串连接起来。
console.log(text3); //Hello World
/* concat()方法可用于代替加运算符,下面两行是等效的 */
var text4 = "Hello" + " " + "World!";
var text5 = "Hello".concat(" ", "World!");
console.log(text4); //Hello World!
console.log(text5); //Hello World!

八、拆分字符串——stringObj.split(bystr)

  • 用bystr字符串将stringObj字符串进行分割,返回分割后的字符串数组
var str1 = "一,二,三,四,五,六,日";
var strArray = str1.split(',');
console.log(strArray); //['一', '二', '三', '四', '五', '六', '日']

九、替换字符串——stringObj.replace(findstr,tostr)

  • findstr是要被替换的字符串,tostr是替换为的字符串,返回替换后的新字符串,原字符串不变。
  • 默认只替换首个匹配,如需替换所有匹配,需使用正则表达式的 g 标志(用于全局搜索)。
  • 其对大小写敏感,如需执行大小写不敏感的替换,需使用正则表达式 /i(大小写不敏感)。
var str = "Please visit Microsoft and Microsoft!";
/* 1.替换一个与多个 */
var str1 = str.replace('Microsoft', "W3School");
console.log(str1); //Please visit W3School and Microsoft!
var str1 = str.replace(/Microsoft/g, "W3School");
console.log(str1); //Please visit W3School and W3School!

/* 2.大小写敏感与否 */
var str3 = str.replace("MICROSOFT", "W3School");
console.log(str3); //Please visit Microsoft and Microsoft!
var str4 = str.replace(/MICROSOFT/i, "W3School");
console.log(str4); //Please visit W3School and Microsoft!
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值