JS字符串的属性与方法

字符串属性

字符串长度(length)

字符串的内置属性length用来计算字符串的长度(字符个数)

var txt = "abcdefg";
txt.length //7

字符串中如果存在空格,一个空格会被计算一个长度。当字符串为中文时,一个字也被计算为一个长度

var txt = 'ab cdefg';
var txx = 'ab  cdefg';
txt.length; //8
txx.length; //9
txt = '你好啊'
txt.length; //3

字符串方法

  • charAt()&charCodeAt()
    作用:返回指定索引位置的字符&&Unicode 值
    使用方法:字符串调用并传入一个索引值。
    区别:前者(string类型):不传入索引值,则默认返回第0个字符。如果传入的索引超出字符串长度-1,则返回""(一个空字符串)
    后者(number类型):不传入索引值,则默认返回第0个字符的 Unicode 值。如果传入的索引超出字符串长度-1,则返回NaN
var txt = 'abcdefg';
txt.charAt(3);//"d"
txt.charAt();//"a"
txt.charAt(999);//""
txt.charCodeAt(3);//100
txt.charCodeAt();//97
txt.charCodeAt(999);//NaN
  • concat()
    作用:拼接字符串,返回一个新的字符串且不会改原有的字符串(string类型)
    使用方法:字符串调用并传入一个或多个字符串(多个之间用逗号隔开)。如果传入的参数不是string类型,则默认先转换为string类型再进行拼接。
    性能:经过资料查阅,强烈建议使用赋值操作符(+, +=)代替 concat()来拼接字符串
 var txt = 'abc';
 txt.concat('de');//"abcde"
 txt.concat('de','fg');//"abcdefg"
 txt.concat(123);//"abc123"
 txt.concat({});//"abc[object Object]"
 txt.concat([]);//"abc"
 txt.concat(null);//"abcnull"
 txt.concat(true);//"abctrue"
  • indexOf()&lastIndexOf()
    作用:返回字符串中检索指定字符第一次出现的索引&&最后一次出现索引(如果没有找到,则返回 -1)
    使用方法:字符串调用并传入一个字符串
    区别:前者:当不传入参数时,默认参数为undefined。当传入空字符串时,返回0。
    后者:当不传入参数时,默认参数为undefined。当传入空字符串时,返回字符串长度
var txt = "abcabc";
txt.indexOf('bc');//1
txt.indexOf('');//0
txt.indexOf();//-1
txt.lastIndexOf('bc');//4
txt.lastIndexOf('');//6
txt.lastIndexOf();//-1

二者均可传入第二个参数,第二个参数表示的是检索的起始位置,可以是任意整数。如果该整数小于0或者大于字符串长度,那么会从0或者字符串长度大小处开始检索

var txt = "abcabc";
txt.indexOf('bc'2);//4
txt.indexOf('bc'-2);//1
txt.indexOf('bc'99);//-1
txt.indexOf(''2);//2
txt.indexOf(2);//报错
txt.lastIndexOf('bc'2);//1
txt.lastIndexOf('bc'-2);//-1
txt.lastIndexOf('bc'99);//4
txt.lastIndexOf(''2);//2
txt.lastIndexOf(2);//报错
  • match()
    作用:找到一个或多个正则表达式的匹配,返回一个数组
    使用方法:字符串调用,并传入一个正则表达式,返回一个匹配的包含字符串的数组(加上g的话表示全文匹配)如果传入的不是正则表达式,则会隐式转换为正则表达式再进行匹配。当不传入任何参数时,返回一个包含空字符串的数组。
var txt = "abcabcabc";
txt.match('ab');//Array["ab"]
txt.match(/ab/);//Array["ab"]
txt.match(/ab/g);//Array["ab","ab","ab"]
txt.match();//Array[""]
  • replace()
    作用:替换与正则表达式匹配的字符,返回一个新的字符串,不会改变与原来的字符串
    使用方法:字符串调用,并传入两个参数,第一个时匹配字符串或者正则表达式,第二个参数是用来替换的值。默认只替换第一个匹配到的字符,如果正则加上全局匹配,那么将所用匹配到的值进行替换。
var txt = "abccbabc";
txt.replace('b','y');//'ayccbabc'
txt.replace(/b/,'y');//'ayccbabc'
txt.replace(/b/g,'y');//'ayccyayc'
  • search()
    作用:检索与正则表达式相匹配的值,返回一个索引值
    使用方法:字符串调用,传入一个正则表达式或者其他类型的参数,其他类型的参数会隐式转换后在进行检索。返回的是第一个匹配的字符索引值,若没有匹配到则返回-1。如果不传入参数返回0。
var txt = "abccbabc";
txt.search('b');//1
txt.search(/b/);//1
txt.search();//0
  • split()
    作用:将字符串转换为数组
    使用方法:字符串调用,传入一个分隔符(字符串或正则表达式),如果字符串中找不到分隔符,则返回一个包含整个字符串的数组。如果分隔符为空字符串,则将字符串中每个字符拆分,以数组形式返回。如果不传入分隔符,则返回一个包含整个字符串的数组。该方法还可以传入第二个参数,表示分隔的片段个数限制。如果分隔的片段没有达到限制,不会在数组后边补充空字符串
var txt = "abcabcabc";
txt.split('e');//Array [ "abcabcabc" ]
txt.split('');//Array(9) [ "a", "b", "c", "a", "b", "c", "a", "b", "c" ]
txt.split();//Array [ "abcabcabc" ]
txt.split('b',2);//Array [ "a", "ca" ]
txt.split('b',9);//Array(4) [ "a", "ca", "ca", "c" ]
  • slice()
    作用:提取字符串的一部分,返回一个新的字符串,不会改变原字符串
    使用方法:字符串调用,可传入两个整数参数,分别表示起始索引值,结尾索引值(提取遵循左闭右开)。第二个参数可以省略,提取从起始索引开始一直到字符串结束。参数也可以传入负数,字符串最后一位索引可看作-1,倒数第二位为-2,以此类推。起始索引必须在结尾索引的左边,否则截取值为空字符串。
 var txt = "abcdefg";
 txt.slice(1,3);//"bc"
 txt.slice(1);//"bcdefg"
 txt.slice(-3,-1);//"ef"
 txt.slice(-3);//"efg"
 txt.slice();//"abcdefg"
 txt.slice(3,1);//<empty string>
 txt.slice(1,-1);//"bcdef"
  • substr()
    作用:提取字符串一部分,返回一个字符串中从指定位置开始到指定个数的字符。
    使用方法:字符串调用,传入两个参数,第一个表示起始索引值,第二个表示要截取的字符串长度。第二个参数不传入时,从起始位一直截取到字符串结尾,如果第一个参数 为负数,字符串最后一位索引可看作-1,倒数第二位为-2,以此类推。从起始位置向字符串结尾截取。如果第二个参数小于等于0,则返回一个空字符串
var txt = "abcdefg";
txt.substr(2,3);//"cde"
txt.substr(2);//"cdefg"
txt.substr(-3,2);//"ef"
txt.substr(-3);//"efg"
txt.substr();//"abcdefg"
txt.substr(2,-1);//<empty string>
  • substring()
    作用:提取字符串一部分,返回一个字符串中两个指定的索引号之间的字符。
    使用方法:两个参数之间没有明确的顺序,左边大于右边或者右边大于左边都可,也可传入负数,也可以只传入一个参数。substring()的负数参数被看作0。
var txt = "abcdefg";
txt.substring(2,5);//"cde"
txt.substring(5,2);//"cde"
txt.substring(2,-2);//"ab"
txt.substring(-2,2);//"ab"
txt.substring(2);//"cdefg"
txt.substring(-2);//"abcdefg"
txt.substring(2,99);//"cdefg"
txt.substring(-2,99);//"abcdefg"
txt.substring(-99,-2);//<empty string>
txt.substring(-99,2);//"ab"
  • toLowerCase()&toUpperCase()
    作用:把字符串转换为小写&把字符串转换为大写
    使用方法:字符串调用返回新的字符串,不会改变原来的字符串。
var txt = "aBcDeF";
txt.toLowerCase();//"abcdeffg"
txt.toUpperCase();//"ABCDEFG"
  • trim()
    作用:去除字符串两端的空格
    使用方法:字符串调用返回去除两端空格的字符串,不会改变原来字符串.
var txt = "  abc de  ";
txt.trim();//"abc de"
  • toString()
    作用:将其他类型的数据转换为字符串类型,返回一个字符串,不会改变原数据类型
    使用方法:其他类型或者字符串对象调用,返回字符串的值
var txt = 123
txt.toString();//"123"
txt = true;
txt.toString();"true"
txt = new String('qwer')//typeof(txt)==Object
txt = txt.toString()//typeof(txt)==string
  • valueOf()
    作用:返回字符串对象的原始值
    使用方法:字符串对象调用,返回一个string类型的值
var txt = new String('qwer');//typeof(txt)==object
txt = txt.valueOf();//typeof(txt)==string

总结

再回来学习基础的时候感觉自己的基础很薄弱,于是想写一个博客来记录以下学习总结结果。当开始写的时候才觉得写博客的难度很大,怎样才能表达清楚一个方法的用处,表述的用词怎么才能准确,写出来的东西自己也要去一一验证过才敢写出来。在验证和查阅资料的过程中才发现原来每一个方法的不同使用姿势,感觉十分的有趣。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JavaScript提供了许多字符串操作方法,以下是一些常用的方法: 1. 字符串长度:使用`length`属性可以获取字符串的长度。 示例:`var str = "Hello World"; console.log(str.length); // 输出 11` 2. 字符串连接:使用`+`运算符可以将两个字符串连接起来。 示例:`var str1 = "Hello"; var str2 = "World"; console.log(str1 + " " + str2); // 输出 "Hello World"` 3. 字符串索引:可以通过索引访问字符串中的单个字符,索引从0开始。 示例:`var str = "Hello"; console.log(str); // 输出 "H"` 4. 子字符串提取:使用`substring(start, end)`方法可以提取字符串的子串,其中`start`表示起始索引(包含),`end`表示结束索引(不包含)。 示例:`var str = "Hello World"; console.log(str.substring(0, 5)); // 输出 "Hello"` 5. 字符串查找:使用`indexOf(substring)`方法可以查找子串在字符串中的位置,返回第一次出现的索引,如果没有找到则返回-1。 示例:`var str = "Hello World"; console.log(str.indexOf("World")); // 输出 6` 6. 字符串替换:使用`replace(oldValue, newValue)`方法可以将字符串中的指定子串替换为新的子串。 示例:`var str = "Hello World"; console.log(str.replace("World", "CSDN")); // 输出 "Hello CSDN"` 7. 字符串分割:使用`split(separator)`方法可以将字符串按照指定的分隔符分割成数组。 示例:`var str = "Hello,World"; console.log(str.split(",")); // 输出 ["Hello", "World"]` 8. 字符串大小写转换:使用`toUpperCase()`方法可以将字符串转换为大写,使用`toLowerCase()`方法可以将字符串转换为小写。 示例:`var str = "Hello World"; console.log(str.toUpperCase()); // 输出 "HELLO WORLD"`

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值