string 从后往前截取_javascript自学记录:String类型

74d1e1d3a1c8278fc734a23bebcf08ba.png

5.6 基本包装类型

5.6.1 Boolean类型(略)

5.6.2 Number类型(略)

5.6.3 String类型

1)、创建方法

var strObj = new String("我的名字");

2)、字符方法

document.write(strObj.length);  // 11 显示字符串长度document.write(strObj.charAt(1));   // e 以0为基数,获取指定位置的字符document.write(strObj.charCodeAt(1));   // e 以0为基数,获取指定位置的字符的编码document.write(strObj[1]);              // e 得到指定序号的字符

3)、字符串的操作方法

a)、拼接concat()

var strObj = new String("hello ");var newStr = strObj.concat("world");alert(newStr);      // hello world  不会影响strObj

b)、截取

var str = "hello world";alert(str.slice(3));        // lo world 取第3个到最后位置alert(str.substring(3));    // lo world 取第3个到最后位置alert(str.substr(3));   // lo world 取第3个,长度没有则为最大长度alert(str.slice(3,7));        // lo w 取第3个到第6个alert(str.substring(3,7));    // lo w 取第3个到第6个alert(str.substr(3,7));   // lo worl 取第3个开始,长度为7

如果指定的序号是负数:

alert(str.slice(-3)) 等同 alert(str.slice(str.length - 3));alert(str.slice(3,-4)) 等同 alert(str.slice(3,str.length - 4)); alert(str.substring(-3));   // hello world 负数变为0alert(str.substring(3,-4)); // 0,1,2 hel alert(str.substr(-3));  // rld 总长-3=8,只有一个参数8时,会截取总长度alert(str.substr(3,-4));    // 第二个参数为负数的话,则变为0,结果为空

c)、字符串位置方法

var str = "hello world";alert(str.indexOf("e"));    // 1 从前往后查找指定的字符首次出现的位置alert(str.indexOf("e",3));  // -1 从前住后,从第3个符号开始查找指定的字符串位置,如果未找到则为-1alert(str.lastIndexOf("e"));    // 1 从后往前查找指定的字符首次出现的位置alert(str.lastIndexOf("e",3));  // 1 从后住前,从第3个符号开始查找指定的字符串位置,如果未找到则为-1

要注意第二条与第四条代码,它们的结果是有差别的喔,第二条结果为-1,那是因为从序号3开始往后没有字符e了,所以为-1;

但如果从后往前的话,从序号3开始,序号1正是我们要找的字符e,所以为1。

个人觉得有必要将查询字符串位置列表的功能做成一个函数:

function searchPostion(str,e){    var position = new Array();    var pos = str.indexOf(e)    while (pos != -1){        position.push(pos);        pos = str.indexOf(e,pos + 1);    }    return position;}var mystr = "Lorem ipsum dolor site amet,consectetur adipisicing elit";result = searchPostion(mystr,"e");  // 调用函数,查找字符e的位置alert(result);  // 3,21,25,32,35,52

d)、trim删除前置与后置空格,生成新的字符串

var str = "    hello world  ";var newStr = str.trim();alert(newStr);  // hello world

注:即使str前后都没有空格,使用trim后也会生成新的字符串newStr。

e)、转换为大小写:

var str = "Hello World";var 大写 = str.toUpperCase();var 小写 = str.toLowerCase();alert(大写); // HELLO WORLDalert(小写); // hello world

f)、在字符串中应用正则表达式

1)、match方法

var str = "cat,bat,sat,fat"var pat = /.at/;var res = str.match(pat);alert(res.index);alert(res[0]);alert(pat.lastIndex);

2)、search方法,此方法返回的是等查字符首次出现的字符位置

3)、替换字符串

var str = "cat,bat,sat,fat"var res1 = str.replace("at","ond");alert(res1);    // cond,bat,sat,fat,只替换找到的第一个var res2 = str.replace(/at/g,"ond");alert(res2);    // cond,bond,sond,fond,由于加了全局标记g,替换全部

注:模式两边不能有双引号

4)、replace第2个参数为函数

function htmlEscape(str){    return str.replace(/[<>"&]/g,function (match,pos,originalText) {        switch (match) {            case "":                return ">";            case "&":                return "&";            case """:                return """;        }    });}var res = htmlEscape("

Hello world!

");alert(res);

5)、split

var str = "red,blue,green,yellow";var colors = str.split(",");    // 以逗号作为分隔alert(colors);  // red,blue,green,yellowalert(typeof(colors));  // 显示类型为objectvar colors2 = str.split(",",2); // 以逗号作为分隔,指定数组大小为2个元素alert(colors2); // red,blue

注:第一个参数作为分隔符,还可以使用正则表达式来分隔更复杂的情况,如下:

var str = "red blue,green|yellow";var colors = str.split(/[ ,|]/g);    // 以空格,逗号和|作为分隔alert(colors);  // red,blue,green,yellow

6)、localeCompare

var str = "y";alert(str.localeCompare("b"));  // 排在给出的字符串之后,即y在b之后,则为1alert(str.localeCompare("y"));  // 排在给出的字符串相同,则为0alert(str.localeCompare("z"));  // 排在给出的字符串之前,即y在z之前,则为-1

7)、fromCharCode给出字符编码转为字符

// String静态方法,即没有实例var str = String.fromCharCode(104,101,108,108,111);alert(str);     // hello
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值