JavaScript操作 字符串 方法小结

本文主要是关于字符串方法的介绍。

创建

String类型是字符串的对象包装类型,可以使用String构造函数来创建。

var stringObject = new String("Hello World");

String对象的方法也可以在所有基本的字符串值访问到,其中继承valueOf()、toLocaleString()后如toString()方法,都返回

length属性

String对象的每个实例都有一个length属性,表示字符串中包含多个字符。

var stringObject = new String("Hello World");
console.log(stringObject.length);   // 11

1.字符方法

两个用于访问字符串中特定字符的方法:charAt() 和charCodeAt() 。这两个方法都接收一个参数,即基于0的字符位置。

charAt()

charAt()方法以单字符字符串的形式返回给定位置的那个字符。

charCodeAt()

返回给对应位置字符的字符编码。

[]方括号

加索引返回字符串的特定字符。

var stringValue = "Hello World";

console.log(stringValue.charAt(1));   // e

console.log(stringValue.charCodeAt(1));   // 101

console.log(stringValue[1]);      //e

2.字符串操作方法

concat()

用于字符串拼接并返回一个新的字符串。

var stringValue = "Hello";
var result = stringValue.concat(" World","!");
console.log(result);			// Hello World!
console.log(stringValue);		// Hello

常用的是加号(+)操作符,更加简便。

slice()

substr()

substring()

三个基于子字符串创建新字符串的方法:slice()、substr()、substring()。这三个方法,都会返回被操作字符串的一个子字符串,而且能接受一两个参数。第一个参数指定子字符串的开始位置,第二个(在指定情况下)参数表示子字符串在哪里结束。

具体来说,slice()和substring()的第二个参数指定的是子字符串最后一个字符后面的位置。而substr()的第二个参数指定返回字符的个数。

如果没第二个参数,则将字符串的末尾作为结束位置。这几个方法不修改原字符串。

主要是例子:

var stringValue = "Hello World";

console.log(stringValue.slice(3));      // lo World
console.log(stringValue.substring(3));  // lo World
console.log(stringValue.substr(3));	// lo World

console.log(stringValue.slice(3,7));	// lo W
console.log(stringValue.substring(3,7));// lo W
console.log(stringValue.substr(3,7));  	// lo Worl

可以看到在只有参数 3 的情况下,三个方法返回 “lo World” ,因为索引为3的位置的字符是第二个"l",所以截到了数组末尾。

在有参数3和7的情况下,substr()和sunstring()返回“lo W”,截取的是字符串内3位置(l,第二个)和7位置(o,第二个),结果内不包含(o),但是 substr() 返回“lo Worl”,因为它的第二个参数指定的是要返回的字符个数。

当参数为负值或有负值时:

  • slice()会将传入的负值与字符串长度相加
  • substr() 将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0
  • sunstring() 会把所有的负值都转换为 0

看示例:

var stringValue = "Hello World";
			
console.log(stringValue.slice(-3));      // rld
console.log(stringValue.substring(-3));  // Hello World
console.log(stringValue.substr(-3));	 // rld

console.log(stringValue.slice(3,-4));	 // lo W
console.log(stringValue.substring(3,-4));// Hel
console.log(stringValue.substr(3,-4));   // ""

当只有一个参数且参数为负数时,slice() 和substr()的行为相同。这里传递的 -3 被转换为8 (-3加上长度11,结果为8),等于是调用了slice(8)和substr(8)。而substring()方法返回全部字符串,因为它将 -3 转换成了0。

当第二个参数为负值时,slice(3, -4)等价于 slice(3,7),所以返回 “lo W”。

substring(3,-4)  将第二个参数转换为 0 ,substring(3, 0),由于这个方法将较小的数作为起始位置,所以substring(0,3),返回“Hel”。

substr()会将第二个参数转换为0,即返回0个字符的字符串,就是一个空字符串。

 

3.位置方法

indexOf()

lastIndexOf()

可以从字符串中查找子字符串的方法  indexOf()、lastIndexOf()。这两个方法都是从一个字符串中搜索给定的字符串,然后返回子字符串的位置(如果没有该子字符串,则返回-1)。这两个方法的区别在于:indexOf()方法从字符串的开头向后搜索字符串,而lastIndexOf()则会从指定位置向前搜索字符串。

var stringValue = "Hello World";
console.log(stringValue.indexOf("o"));		// 4   Hello里的o
console.log(stringValue.lastIndexOf("o"));	// 7	World里的o

可以指定第二个参数,第二个参数表示可以从字符串的哪个开始搜索。

var stringValue = "Hello World";
console.log(stringValue.indexOf("o",6));	// 7   World里的o
console.log(stringValue.lastIndexOf("o",6));	// 4   Hello里的o

4.trim()

去除字符串前后空格,然后返回结果。

var str = "     123 asds  454   ";
var strtirm = str.trim();
console.log(strtirm);   // "123 asds  454"

5.字符串大小写转换

四个:

经典写法:toLowerCase()、toUpperCase()

特定地区实现:toLocaleLowerCase()、toLocaleUpperCase()
 

var str = "Hello World";
//经典写法
console.log(str.toLowerCase());     	// hello world
console.log(str.toUpperCase());			// HELLO WORLD
// 地区写法
console.log(str.toLocaleLowerCase());	// hello world
console.log(str.toLocaleUpperCase());	// HELLO WORLD

6.字符串的模式匹配方法

match()

只接收一个参数,要么是一个正则表达式,要么是RegExp对象。

var text = "cat, bat, sat, fat";
var pattern = /.at/;

var matches = text.match(pattern);
console.log(matches.index);   		// 0
console.log(matches[0]);		// cat
console.log(pattern.lastIndex);		// 0

search()

用于查找模式的方法,参数与match()一致。返回字符串中第一个匹配项的索引,如果没有找到匹配项,则返回-1。查找方式始终为从字符产开头向后查找。

var text = "cat, bat, sat, fat";
var pos = text.search(/at/);
console.log(pos);      // 1    "at"在字符串第一次出现的位置

replace()

这个函数接收两个参数:第一个参数可以是一个RegExp对象或者是一个字符串,第二个参数可以是一个字符串和或者是一个函数。

如果第一个参数是一个字符串,那么只能替换掉第一个子字符串,要想替换掉所有子字符串,唯一的方法是 提供一个正则表达式。

var text = "cat, bat, sat, fat";
var res = text.replace("at","ond");  
console.log(res);		// cond, bat, sat, fat

res = text.replace(/at/g, "ond");
console.log(res);		// cond, bond, sond, fond

split()

这个方法可以基于指定的分隔符将一个字符串分割成。多个子字符串,并将结果放在一个数组中。

var color = "red, blue, yellow, orange";

var color1 = color.split(",");
var color2 = color.split(",",2);
var color3 = color.split(/[^\,]+/);

console.log(color1);    // ["red", " blue", " yellow", " orange"]
console.log(color2);	// ["red", " blue"]
console.log(color3);	// ["", ",", ",", ",", ""]

7.localeCompare()

这个是有关操作 字符串的最后一个方法:localeCompare()。这个是比较两个字符串,并返回下列值中的一个:

  • 如果字符串在字母表应该排在字符串参数之前,则返回一个负数(大多为-1);
  • 如果字符串等于字符串参数,则返回0;
  • 如果字符串在字母表中应该排在字符串参数之后,则返回一个正数(大多为1)。
var str = "yellow";
console.log(str.localeCompare("brick"));	// 1
console.log(str.localeCompare("yellow"));	// 0
console.log(str.localeCompare("zoo"));		// -1

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值