字符串操作
并不是所有后台获取的数据都是可以直接使用展示在界面上的,也不可能接到用户的互动数据什么都不干直接传给后台,所以前台的数据操作是很重要的一个环节,而数据操作最主要的还是字符串操作。
javascript底层提供了多个api方便开发者操作字符串,这里做个记录。
1、substring(startSub, endSub)
该api用于取得字符串指定下标内的字符。
var str = '2017-03-20 ++ 11:48:00'; var startStr = str.substring(0, 10); //2017-03-20 var endStr = str.substring(str.length - 8); //11:48:00
可以很明确的看出来:两个参数取下标开始到 下标结束-1 内的字符;而一个参数时则获取的是指定下标后一位开始到结尾的字符。
2、replace(regexp/substr, replacement)
常用替换操作,两个参数都是必须的。
var str = 'hello'; var reg = /\h/; console.log(str.replace(reg, 'H')); //Hello
这里我们用正则匹配了一个小 h 并将它替换成了大写 H。
var str = 'world'; console.log(str.replace('world','hello world')); //hello world
也可以直接通过查找字符串来进行替换。
3、split(separator, howmany)
将字符串打散成字符串数组,第一个参数为必须。
var str = '123456' console.log(str.split('')); //["1", "2", "3", "4", "5", "6"]
console.log(str.split('',5));
//["1", "2", "3", "4", "5"]
后一个可选参数则表示数组的最大长度,超出部分丢掉。
我们可以用来截取url的参数:
var str = 'http://***.html?id=1&name=ice&age=12'; var paramArray = str.split('?')[1].split('&'); //["id=1", "name=ice", "age=12"]
4、join(separator)
将数组拼接成字符串使用separator分割。
var arr = [1,2,3,4,5]; console.log(arr.join('')); //12345
5、indexOf(searchvalue, fromindex)
查找指定字符串在某字符串中首次出现位置,第二参数为可选,指定检索的起始位置。
var str = 'hello'; console.log(str.indexOf('o')); //4
如果查找到了,那么返回对应下标位置,如果没找到,则返回-1。
console.log(str.indexOf('h',1)); //-1
6、lastIndexOf(searchvalue, fromindex)
与indexOf使用类似,查找指定字符串在某字符串中最后一次出现的位置,第二个参数为从指定位置从后向前检索。
此api可简单理解为:从后往前查第一个匹配,没有返回-1。
7、match(reg/searchvalue)
用于匹配指定正则表达式或者字符串值。
var str = 'hello'; var reg = /\h/; console.log(str.match(reg)); //["h", index: 0, input: "hello"]
匹配不到时,则返回:
var str = 'world'; var reg = /\+/; console.log(str.match(reg)); //null console.log(str.match('9')); //null
8、slice(start, end)
截取指定下标区间字符或数组元素。第二参数可选,不传则到结尾。
var str = 'string'; console.log(str.slice(2)); //ring console.log(str.slice(2,4)); //ri
var arr = [1,2,3,4,5]; console.log(arr.slice(2)); //[3, 4, 5] console.log(arr.slice(2,4)); //[3, 4]
9、search(reg)
用于查找指定子字符串,或者检索正则表达式相匹配的子字符串
var str = 'hello' console.log(str.search(/\h/)) //0 console.log(str.search('q')); //-1
10、charAt(index)
返回字符串指定下标值
var str = 'hello'; console.log(str.charAt(2)); //l
11、toLowerCase()、toUpperCase()
大小写转换方法。。。直接调用不需要多说。
12、concat(n*arr/string)
用于连接字符串或数组,不会改变原有数据
var a = 'hello'; var b = 'world'; console.log(a.concat(' ', b)); //hello world
var a = [1]; var b = [2]; console.log(a.concat(b, [3])); //[1, 2, 3]
事实证明,前端也很重要。