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")不可以当空处理;不能传入负数.