encodeURI(string)
:把字符串string作为URI编码;URI–统一资源标识符; URL–统一资源定位符;
decodeURI(URIstring)
:可以encodeURI()
函数编码过的URI进行解码;返回URIstring的副本,其中十六进制转义的序列 将被他们表示的字符串替换;
<script type="text/javascript">
var str="Hello world"
// 1、 str.substr(起始下标start,子串长度length); 其实下标为负数(-2),表示从后算下标(倒数第二个数); length可不写,不写代表到字符串结束;
console.log(str.substr(3,5)); //从下标3处开始截取,截取5位数, 输出lo wo;
console.log(str.substr(-3,1)); //从倒数第3位开始截取,截取1位数, 输出r;
console.log(str.substr(-5)); //没有写length代表截取到最后,从倒数第5位开始,去到最后, 输出world;
// 2、 substring(start,end)用于截取“介于两个指定下标之间”的字符
console.log(str.substring(2,7)); //截取下标2-下标6“之间”的字符,即下标2-5的字符; 输出llo w
console.log(str.substring(3)); //截取下标3至最后的字符; 输出lo world;
//3、 slice()和substring(start,end)类似,只不过slice的参数可以为负数;
console.log(str.slice(3,7)); //截取下标3-下标6的字符; 输出lo w;
console.log(str.slice(-5,-2)); //截取倒数第5位-倒数第2位"之间"的字符, 输出wor;
console.log(str.slice(-3)); //截取倒数第3位到最后的字符串 输出rld;
总结:String对象的slice()、substring().substr()都可以返回字符串的指定部分,slice()比substring()灵活些,可以使用负数为参数; substr()和另两个不同,substr()是用字符初始位置和长度来指定子串;
/*------------------------------------------------------------*/
//关于String.slice(start,end)和Array.slice(start,end)
// String.slice(start,end); 返回起止下标之间的字符;
// Array.slice(start,end);从已有数组中返回指定的元素;也是起止下标之间的元素,也可以使用负数为参数,”该方法不会修改数组,而是返回一个子数“;组;
var arr=new Array(5);
arr[0]="张三";
arr[1]="李四";
arr[2]="王五";
arr[3]="赵六";
arr[4]="马奇";
console.log(arr)
console.log(arr.slice(2)) //返回数组中下标为2的元素到最后, 输出 数组:王五,赵六,马奇
console.log(arr.slice(2,4)); //返回下标2-4之间的元素, 输出数组:王五,赵六;
console.log(arr.slice(-2)); //返回倒数第2个元素到最后的元素 输出 数组:赵六 马奇
console.log(arr); //数组不会被修改;
//Array的slice()并不会改变数组,而是返回一个子数组;若想删除数组中的一段元素,应使用Array,splice()方法;
//Array.splice()方法用于从数组中添加、删除元素,并返回修改后的数组;
//Array.splice(添加删除的位置,删除的元素数量可为0,添加的元素1,添加的元素2,...添加的元素3);
//返回被修改后的新数组;
//数组的增、删、改
var brr=new Array(6);
brr[0]="zhangsan";
brr[1]="lisi";
brr[2]="wangwu";
brr[3]="zhaoliu";
brr[4]="maqi";
brr[5]="chenfei";
//添加
console.log(brr); //输出 ["zhangsan", "lisi", "wangwu", "zhaoliu", "maqi", "chenfei"]
brr.splice(2,0,"yanghua"); //修改的是原数组,要打印原数组,和slice()不同;
console.log(brr); //从下标2处,删除0 个元素,添加元素"yanghua"; 即行第3个元素后面添加一个元素, 输出 ["zhangsan", "lisi", "yanghua", "wangwu", "zhaoliu", "maqi", "chenfei"]
//可以看出,第一项是"添加删除的位置";
//替换
console.log(brr); //原数组: ["zhangsan", "lisi", "yanghua", "wangwu", "zhaoliu", "maqi", "chenfei"]
brr.splice(2,1,"xiaomiao"); //在下标2处删除1个元素,添加一个元素"xiaomiao",相当于修改了一个元素;
console.log(brr); //返回修改后数组:["zhangsan", "lisi", "xiaomiao", "wangwu", "zhaoliu", "maqi", "chenfei"]
//删除
brr.splice(2,3); //在下标2处,删除3个元素;
console.log(brr); //返回删除后的数组:["zhangsan", "lisi", "maqi", "chenfei"]
brr.splice(2,2,"huahua"); //下标2处删除2个,添加一个数
console.log(brr); ["zhangsan", "lisi", "huahua"]
</script>