whkl/blog

js常用的处理字符串的方法

Opened this issue · 0 comments

whkl commented

取索引

  • indexOf
    从左到右查找String对象内第一次出现子字符串位置,大小写敏感,找不到返回-1
  • lastIndexOf
    从左到右查找String对象内最后出现子字符串位置,大小写敏感,找不到返回-1
  • search
    返回与正则表达式查找内容匹配的第一个字符串的位置。
var str = "ABCDECDF"; 
str.search("CD"); // 或 str.search(/CD/i); 
//=> 2

字符串截取slice()、substring()、substr()

  • slice()
    从已有的字符串中返回选定的元素。
    当接收的参数是负数时,slice会将它字符串的长度与对应的负数相加,结果作为参数
    若第一个参数等于大于第二个参数,则返回空字符串.
var test = 'hello world';
alert(test.slice(-3));         //rld
test.slice(5,2)   //""
test.slice(-5,-2) //"wor"
  • substring()
    从已有的字符串中返回选定的元素。
    当接收的参数是负数时,负参数都直接转换为0
    若第一个参数等于大于第二个参数:选取小的为第一个参数
var a='qiuzhaomei'
a.substring(-3)
//=>"qiuzhaomei"
a.substring(-3,4)
//=>"qiuz"
a.substring(-3,-4)
//=>''
a.substring(5,2)
//=>"uzh"
  • substr()
    第一个参数代表开始位置,第二个参数代表截取的长度
    当接收的参数是负数时,substr会将它字符串的长度与对应的负数相加,结果作为参数
    第二个参数为负数则返回为空
var a='qiuzhaomei'
a.substr(5)
//=>'aomei'
a.substr(-4)
//=> "omei"
a.substr(-4,-2)
//=>""

String对象属性

  • length属性 返回字符串的长度
var a='qiuzhaomei'
a.lenght
//=>10
  • prototype属性
    用来给对象添加属性或方法,并且添加的方法或属性在所有的实例上共享。因此也常用来扩展js内置对象
//如下面的代码给字符串添加了一个去除两边空格的方法:
String.prototype.trim = function(){
    return this.replace(/^\s*|\s*$/g, '');
}

字符串相互转化数组

  • split 字符串转数组
  • join 数组转字符串
var message= 'Hello Vue.js!'
message.split('')
//=>  ["H", "e", "l", "l", "o", " ", "V", "u", "e", ".", "j", "s", "!"]
message.split('').reverse()  //数组倒叙
//=> ["!", "s", "j", ".", "e", "u", "V", " ", "o", "l", "l", "e", "H"] 
message.split('').reverse().join('')
//=> "!sj.euV olleH"

es6中字符串的拓展

四.字符串的扩展
如果要判断字符串”hello word”中是否存在”word”,用字符串中的方法只有indexOf,在ES6中又为我们提供了其它的方法:

includes()->返回布尔值,用于判字符串是否包含某些字符串
startsWith()->返回布尔值,用于判断字符串是否以某些字符开头
endWith()->返回布尔值,用于判断字符串是否以缪谢字符结尾.有两个参数(字符串,数值)->("o",3)用于判断下标3的字符串是否是"0".
repeat()->传入一个数字,将字符串重复数字对应的次数返回.
注意:传入的是正小数,数字会被向下取整;传入字符串类型的数值("5"),可以,传入("5a")不可以当空处理;不能传入负数.