初探
var str = 'stringstring';
str.length -> 字符串长度
str[100] -> undefined
// => 字符串中的每一个字符都有一个自己对应位置的索引,也有类似于数组一样的length
for(var i = 0; i < str.length; i++){
console.log(str[i]);
}
关于字符串中常用的方法
字符串是基本数据类型,字符串的每一次操作 都是值直接的进行操作,不像数组是基于空间地址操作。
1.charAt/charCodeAt
作用: charAt根据索引获取指定位置的字符,
charCodeAt不是获取字符,而是获取字符对应的Unicode编码
2.indexOf/lastIndexOf
基于这个方法,可以获取字符再字符串第一次或者最后一次出现的位置索引,有这个字符,返回大于等于0的索引,不包含这个字符,返回的结果是-1,所以可以基于这两个方法,验证当前字符串是否包含某个字符
var str = 'strstr';
if(str.indexOf('@') > -1){
}
3.slice
作用:str.slice(n, m)从索引n开始找到索引为m处(不包含m),将新字符串返回
4.subString
和slice语法一模一样,唯一的区别:subString不支持负数索引
5.substr
用法:str.substr(n, m), 从索引n开始截取m个字符,支持负数索引
6.toUpperCase/toLowerCase
作用:实现字母的大小写转换
7.split
拆分字符串
8.replace
作用:替换字符串中的原有字符
参数:原有字符,要替换的新字符
返回:替换后的字符串
- includes
- localeCompare
- search
- trim
应用:
1.时间字符串格式化
有一个时间字符串“2018-4-4 16:26:8”
function (pro) {
pro.formatTime = function (template) {
template = template || '{0}年{1}月{2}日{3}时{4}分{5}秒';
var ary = this.match(/\d+/g);
template = template.replace(/\{(\d+)\}/g, function (){
var n = arguments[1],
var val = ary[n] || '0';
val < 10 ? val = '0' + val: null;
return val;
});
return template
}
}(String.prototype);
2.url地址问号传参解析
有一个url地址 http:www.baidu.com/?name=‘11’&age=12#teacher
正则法
var str = "http:www.baidu.com/?name='11'&age=12#teacher";
function (pro) {
pro.queryURLParameter = function () {
var obj = {},
reg= /([^?=&#]+)(?:=([^?=&#]+)?)/g;
this.replace(reg, function () {
var key = arguments[1],
value = arguments[2] || null;
obj[key] = value;
})
return obj;
}
}(String.prototype)