欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript中字符串的常见api操作(偏ES5)

程序员文章站 2022-03-30 18:00:39
1. api简单汇总 1.1 string相关操作汇总 获取字符串长度 str.length 分割字符串 str.split() 拼接字符串 str1+str2 或 str1.concat(str2...

1. api简单汇总

1.1 string相关操作汇总

获取字符串长度 str.length
分割字符串 str.split()
拼接字符串 str1+str2 或 str1.concat(str2)
替换字符串 str.replace(“玩游戏”,”好好学习”)
提取子字符串 str.slice(start, end)或str.substring(start,end)或mystr.substr(start,length)
切换字符串大小写 str.tolowercase()和str.touppercase()
比较字符串 str1.localecompare(str2)
匹配字符串 str.match(pattern)或pattern.exec(str)或str.search(pattern)
根据位置查字符 str.charat(index)
根据位置字符unicode编码 str.charcodeat(index)
根据字符查位置 str.indexof(“you”)从左,mystr.lastindexof(“you”)从尾 或str.search(‘you’)
原始数据类型转字符串 string(数据) 或利用加号
字符串转原始数据类型 数字number(”) // 0 布尔boolean(”) // 0
自己构建属性和方法 string.prototype.属性或方法= function(参数){代码}

1.2 api所属大体位置

利用控制台,通过原型链的知识,可以大体知道api在哪些对象里。

2. 字符串类型转换

这里只讨论原始数据类型之间的转换

2.1 原始数据类型转 string

string()
string(123) // "123"
string('abc') // "abc"
string(true) // "true"
string(undefined) // "undefined"
string(null) // "null"

隐式转换 +

2.2 string 转其他类型

数字

number('') // 0 

布尔

boolean('') // 0

3. 字符串分割

一个字符串分割为多个字符串
split()

var mystr = "i,love,you,do,you,love,me";
var substrarray = mystr.split(","); // ["i", "love", "you", "do", "you", "love", "me"];
var arraylimited = mystr.split(",", 3); // ["i", "love", "you"];

split()的第二个参数,表示返回的字符串数组的最大长度。

4. 获取字符串长度

length属性

var mystr = "i,love,you,do,you,love,me";
var mystrlength = mystr.length; //25

5. 查询子字符串

5.1 indexof()

它从字符串的开头开始查找,找到返回对应坐标,找不到返回-1。

var mystr = "i,love,you,do,you,love,me";
var index = mystr.indexof("you"); // 7 ,基于0开始,找不到返回-1

5.2 lastindexof()

它从字符串的末尾开始查找,找到返回对应坐标,找不到返回-1。

var mystr = "i,love,you,do,you,love,me";
var index = mystr.lastindexof("you"); // 14

6. 字符串替换

replace()

var mystr = "i,love,you,do,you,love,me";
var replacedstr = mystr.replace("love","hate");//"i,hate,you,do,you,love,me"

默认只替换第一次查找到的,想要全局替换,需要置上正则全局标识,如:

var mystr = "i,love,you,do,you,love,me";
var replacedstr = mystr.replace(/love/g,"hate");//"i,hate,you,do,you,hate,me"

7. 查找给定位置的字符或其字符编码值

7.1 charat()

可用来获取指定位置的字符串,index为字符串索引值,从0开始到string.leng - 1,若不在这个范围将返回一个空字符串。

var mystr = "i,love,you,do,you,love,me";
var thechar = mystr.charat(8);// "o",同样从0开始

7.2 charcodeat

可返回指定位置的字符的unicode编码。charcodeat()方法与charat()方法类似,都需要传入一个索引值作为参数,区别是前者返回指定位置的字符的编码,而后者返回的是字符子串。

var mystr = "i,love,you,do,you,love,me";
var thechar = mystr.charcodeat(8); //111

8. 字符串连接

8.1 加号 +

var str1 = "i,love,you!";
var str2 = "do,you,love,me?";
var str = str1 + str2 + "yes!";//"i,love,you!do,you,love,me?yes!"

8.2 concat()

var str1 = "i,love,you!";
var str2 = "do,you,love,me?";
var str = str1.concat(str2);//"i,love,you!do,you,love,me?"

其中concat()函数可以有多个参数,传递多个字符串,拼接多个字符串。

9. 字符串提取

9.1 slice()

var mystr = "i,love,you,do,you,love,me";
var substr = mystr.slice(1,5);//",lov"

9.2 substring()

var mystr = "i,love,you,do,you,love,me";
var substr = mystr.substring(1,5); //",lov"

9.3 substr()

var mystr = "i,love,you,do,you,love,me";
var substr = mystr.substr(1,5); //",love"

与第一种和第二种不同的是,substr()第二个参数代表截取的字符串最大长度

10. 字符串大小写转换

tolowercase() touppercase()

var mystr = "i,love,you,do,you,love,me";
var lowcasestr = mystr.tolowercase();//"i,love,you,do,you,love,me";
var upcasestr = mystr.touppercase();//"i,love,you,do,you,love,me"

11. 字符串匹配

11.1 match()结合正则表达式

var mystr = "i,love,you,do,you,love,me";
var pattern = /love/;
var result = mystr.match(pattern);//["love"]
console.log(result .index);//2
console.log(result.input );//i,love,you,do,you,love,me

11.2 exec()结合正则表达式

var mystr = "i,love,you,do,you,love,me";
var pattern = /love/;
var result = pattern .exec(mystr);//["love"]
console.log(result .index);//2
console.log(result.input );//i,love,you,do,you,love,me

两个方法,匹配的结果都是返回第一个匹配成功的字符串,如果匹配失败则返回null。

11.3 search()结合正则表达式

var mystr = "i,love,you,do,you,love,me";
var pattern = /love/;
var result = mystr.search(pattern);//2

仅返回查到的匹配的下标,如果匹配失败则返回-1。

12. 字符串比较

localecompare()

var mystr = "chicken";
var mystrtwo = "egg";
var first = mystr.localecompare(mystrtwo); // -1
first = mystr.localecompare("chicken"); // 0
first = mystr.localecompare("apple"); // 1

比较两个字符串,比较是规则是按照字母表顺序比较的

13. 自己扩展属性和方法

prototype属性
下面的代码给字符串添加了一个去除两边空格的方法

string.prototype.trim = function(){
    return this.replace(/^\s*|\s*$/g, '');
}