字符串操作

一.字符串操作【算法题必备】

1.字符串创建
    var s1 = "hello" 
    var s2 = new String("hello")
2.属性
s1.length       获取字符串长度
3.方法

(1)获取字符【只能从正向走】

   charAt()            只能返回单个的给定位置的字符
    charcodeAt()        返回字符编码

    []   var s1 = "hello"   方括号下标访问
                   01234----索引和下标值
    
    console.log(s1[1])
    console.log(s1[0])
    console.log(s1[2])

(2)【拼接字符串】

   +  字符串连接
concat()用于将一个和多个字符串拼接起来,并返回新的字符串。
        var s2=s1.concat("world");
        var s2=s1.concat("world","student","!");

(3)子字符串

substr(起始位置,长度)  从起始位置截取到指定长度的子字符串
        如起始位置为负数,则倒数
        console.log(s1.substr(3))           //lo world 后面是长度
        console.log(s1.substr(3,6))           //lo wor
        console.log(s1.substr(0))           //hello world
        console.log(s1.substr(-3))           //rld      倒着数
        console.log(s1.substr(3,-4))           //长度不能是负数,为负数语法出错
        console.log(s1.substr(8,3))           //rld
 substring(起始位置,终止位置):起始包含,终止不包含
    遇到负数,自动转换为0
          起始如大于终止,,则自动调换
        console.log(s1.substring(3))           //lo world
        console.log(s1.substring(3,7))           //lo w
        console.log(s1.substring(0))           //hello world
        console.log(s1.substring(-3))           //hello world   负数转为0
        console.log(s1.substring(3,-4))           //hel     负数都转0 0-3提
        console.log(s1.substring(8,3))           //lo wo    (3,8)调换位置
slice(起始位置,终止位置):优点:识别负数
        console.log(s1.slice(3))           //lo world
        console.log(s1.slice(3,6))           //lo 
        console.log(s1.slice(0))           //hello world
        console.log(s1.slice(-3))           //rld
        console.log(s1.slice(3,-4))           //lo w    3到-4
        console.log(s1.slice(8,3))           //

(4)字符串大小写转换

s1="hello"
s1.toLowerCase()     小写
s1.toUpperCase()     大写

var s1="hello"
console.log(s1.toLowerCase())    //小写
console.log(s1.toUpperCase())    //大写

(5)去空格

   s1="  he  llo  "
    s1.trim()   去左右空格

(6)split 字符串分割

  s1 = "he,l,lo,wo,r,d"
    s1.split(",")      [he,l,lo,wo,r,d]
    s1.split(",",2)    [he,l]

    s2 = "hellowol"
    s2.split(",")
    s2.split(",",2)    [he,l]

(7)字符串位置方法

indexOf()       返回指定字符的第一个位置,如找不到,返回-1,
                第二个参数表示查找第起始位置
lastIndexOf()   从后向前找
        var s1="hello world"
        console.log(s1.indexOf("e") )   //1
        console.log(s1.indexOf("o"))    //4
        console.log(s1.indexOf("m"))    //-1
        console.log(s1.indexOf("o",6))  //7

        s1.lastIndexOf("o")
        s1.lastIndexOf("1")

(8)替换replace

  • 反回新字符串

  • 只替换第一个匹配项

   s1="hello"
   s1.replace("1","m")  hemlo

(9)字符串删除

var s1="hello"
console.log(s1.replace("e",""))  //hllo
console.log(s1.replace(s1[2],"")) //helo
//*删除字符串中所有的数字
    function f1(n1){
        for(var i = 0;i<n1.length;i++){
            if(n1.charCodeAt(i)>=49&&n1.charCodeAt(i)<=57){
                var a = n1.charAt(i)
                n1 = n1.replace(a,"") 
                i=i-1
                }
            }
            alert(n1)
        } 
    f1("he123llo")

(10)字符串的比较***

(1) localeCompare:调用本地操作系统

s1="abc"
s2="edf"
localCompare(s2)

s4= "yellow".localeCompare("yellow")  //0
s4= "yellow".localeCompare("blue")      //1
s4= "yellow".localeCompare("zoo")       //-1
  • 英文比较
v1.localeCompare(v2)
v1=v2 返回0
v1排在v2之前返回-1
v1排在v2之后返回1

s2= "3ellow".localeCompare("9oo")        //-1
s3= "3ellow".localeCompare("3oo")       //-1
s4= "3ellow".localeCompare("Zoo")       //-1
  • 中文比较–按拼音
s2 = "a".localeCompare("A")
"北京".localeCompare("上海")
alert("a">"A")

//a1["哈尔滨","北京","杭州","上海","深圳"] 排序(升序)
a1.sort((a,b)=>{retuwn a.localeCompare(b)})     //=>ES6函数
a1.sort((a,b)=>{        //排序自带函数
    retuwn a.localeCompare(b)
    })
console.log(a1)

(2)alert(“a”>“A”) //true 按ascii码比较

(11)字符串编码

  • charCodeAt()

放索引

s1="a";
console.log(s1.charCodeAt())  //97   对应的Unicode编码
s2="海"
console.log(s2.charCodeAt())  //28023  对应的Unicode编码

s1="a";
s3=s1.charCodeAt();
s2="罗"
s4=s2.charCodeAt(0)
console.log(s3,s4)
s5=s4.toString(16);
console.log(s5)     //7f57
  • fromCharCode()

根据ascii或unicode的十进制码进行解析

console.log(String.fromCharCode(65))  //A
console.log(String.fromCharCode(28032)) //海
  • escape()

escape() 输出unicode码
unescape(“\u6D77”) 海
encodeURI(s1) //%E6%B5%B7 加密
decodeURI("%E6%B5%B7 ") 解密

 s1 ="海"
 console.log(escape(s1))      //u6D77
 console.log(unescape("\u6D77")) //海
 console.log(encodeURI(s1))    //%E6%B5%B7     加密
 console.log(decodeURI("%E6%B5%B7 "))     //解密

正则表达式:i-忽略大小写 g-全局查找 reg=/a/ig s3=s2.replace(reg,“m”)

二、拓展Ascii码

        a:  97
        z:  122
        A:  65
        Z:  90
        0:  48
        9:  57
        空格:32
        回车:13
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值