JavaScript 字符串

创建字符串

创建字符串也分为两种方法 : 字面量 和 构造函数

//字面量
       var str='hello'
       //构造函数
       var str =new String('hello')

两种方式创建的字符串没有区别,除了在控制台打印显示区别例外

字符串操作

字符串也有length属性 -> 表示字符串长度,也就是字符串中字符串个数

注:空字符也算一个字符

字符串是按照索引排列,可以通过索引访问每一个字符,字符值只能访问不能改变

var str='helloworld'
console.log(str[1])
str[1]='z'
console.log(str[1])

for循环遍历字符串

包装数据类型

字符串、数值、布尔值是一个包装数据类型

当使用时会自动转换成复杂数据类型,使用完自动转回基本数据类型

使用点语句.toString

模板字符串

ES2015前,字符串拼接使用引号'',但在换行操作和输出变量值时不方便

ES2015后,字符串拼接使用反引号'',引用变量值时可以使用$(变量名)

var str = '<div><p></p><span></span><span></span></div>'


var str2 ='
 <div>
       <p>你好</p>
       <span>世界</span>
  </div>

案例

//方案一
 function test(){
        var students = [
        { number: 1001, name: 'jack', score: 98, gender: '男' },
        { number: 1002, name: 'rose', score: 95, gender: '女' },
        { number: 1003, name: '小丽', score: 85, gender: '女' },
        { number: 1004, name: 'tom', score: 88, gender: '男' },
        ]
        var newArr =students.map(function(item){
            return `
            <tr>
                <td>${item.number}</td>
                <td>${item.name}</td>
                <td>${item.score}</td>
                <td>${item.gender}</td>
            </tr>
            `
        }).join('')
        document.write('<table>'+newArr+'</table>')
    }
    test()
//方案二
 function fn(){
              var students=[
              {number:1001, name:'jack', score:98,gender:'男'},
              {number:1002, name:'rose',score:95,gender:'女'},
              {number:1003, name:'小丽', score:85,gender:'女'}
              ]
              var trStr=''
              students.forEach(function(item){
              trStr=trStr + `
              <tr>
                  <td>${item.number}</td>
                  <td>${item.name}</td>
                  <td>${item.score}</td>
                  <td>${item.gender}</td>
              </tr>
              `
              })
              var str ='<table>'+trStr+'</table>'
              document.write(str)
        }
        fn()

字符串的常用方法

我们操作字符串时,也有一堆的方法来帮助我们操作

字符串和数组有一个一样的地方,也是按照索引来排列的

//charAt(索引)  是找到字符串中指定索引位置的内容后返回
var str = 'jack'
//使用charAt  找到字符串中的某一个内容
var index = str.charAt(2)

console.log(index) //c

//因为字符串也是按照索引来排列的,也是同样从0开始
//所以索引2的位置就是c
//如果没有对应的索引,那么就会返回空字符串
var str = 'jack'
//使用charAt找到字符串中的某一个内容
var index =str.charAt(10)
console.log(index) // ''
//这个字符串根本没有索引到10的位置,所以就会返回一个空字符串''

indexOf&lastIndexOf

indexOf

          =>   返回字符在字符串中的下标

          =>   如果字符不存在返回-1

 lastIndexOf

          =>   查找从右往左,未找到返回-1

var str = 'jack'
//使用indexOf 找到对应的索引
var index=str.indexOf('j')
console.log(index)//0

substring

substring  对照 slice

          =>   从哪个索引开始,到哪个索引截止,但不包含截止到的索引

var str = 'hello'
//         01234
//使用substring 截取字符串
var newStr=str.substring(1,3)
console.log(newStr)//el

substr

substr    对照  splice

          =>   从索引开始,截取多少个

var str = 'hello'
//         01234
//使用substr 截取字符串
var newStr=str.substr(1,3)
console.log(newStr)//ell

replace

          =>   用于在字符串中用一些字符替代另一些字符

var str='abc'
var newStr=str.replace('a','b')
console.log(newStr)//bbc

split

           =>  分割字符串,将分割之后的字符存入数组返回

var str='javascript-html-css'
var arr=str.split('-')
console.log(arr)// {javascript,html,css}

concat

          =>   连接两个字符串,返回拼接的字符串

var str='hello'
var s1=str.concat('world')
console.log(s1)//helloworld

.trim()

          =>   方法删除字符串两端的空白符

          =>   返回去掉空格的新字符

startsWith()

          =>   判断字符串是否以子字符串开始  返回  true|false

          endsWith()

          =>   判断字符串是否以子字符串结束  返回  true|false

toLowerCase

          =>   大写转小写

           toUpperCase

          =>   小写转大写

var str=hello
//使用toUpperCase 转换成大写
var  upper = str.toUpperCase()
console.log(upper) //HELLO
//使用toLowerCase 转换成小写
var lower = upper.toLowerCase()
console.log(lower)//hello

案例:

反转字符串

 function testReverse(){
        var newStr=[]
       var str = 'abcdefg' // => gfedcba
       /* var str1=str.split('')
       str1.reverse()
       var str2=str1.join('')
       console.log(str2) */
       for(var i=str.length;i>=0;i--){
         var temp=str[i]
          newStr.push(str[i])
       }
       var newstr=newStr.join('')
       console.log(newstr)
       }
testReverse()

替换字符串

  function testReplace(){
       var str = 'abcedfdMMefallMMaefeafMMopqrst' // => abcedfd**efall**aefeaf**opqrst
       /* var newstr=str.replace('MM','**')
       var newstr1=newstr.replace('MM','**')
       var newstr2=newstr1.replace('MM','**')
       console.log(newstr2)
       } */
       var newstr=str.split('MM')
       var str1=newstr.join('**')
       console.log(str1)
    }
       testReplace()

字符串分割

function testSplit(){
       var str = 'javascript-html-css' // => ['javascript','css','html']
       var line=''
       var arr=[]
       for(var i=0;i<str.length;i++){
            var chars=str.charAt(i)
            if(chars !='-'){
                line=line + chars
            }else{
                if(line !=''){
                    arr.push(line)
                    line= ''
                }
            }
            if(i==str.length-1 && line !=''){
                arr.push(line)
                line= ''
            }
       }
        console.log(arr)// {javascript,html,css}
       }testSplit()
var str='javascript-html-css'
var arr=str.split('-')
console.log(arr)// {javascript,html,css}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值