首页 > 其他分享 >常用的截取字符串方法JS和Golang实现

常用的截取字符串方法JS和Golang实现

时间:2023-05-05 23:45:28浏览次数:28  
标签:return substr 截取 JS Golang start length total

JS中截取字符串很简单,直接使用substr函数

substr() 方法可在字符串中截取从开始下标开始的指定数目的字符。下标是从0开始算

例如:

"21".substr(0,1)   返回2

golang实现的substr

// 截取字符串,支持多字节字符
// start:起始下标,负数从从尾部开始,最后一个为-1
// length:截取长度,负数表示截取到末尾
func SubStr(str string, start int, length int) (result string) {
    s := []rune(str)
    total := len(s)
    if total == 0 {
        return
    }
    // 允许从尾部开始计算
    if start < 0 {
        start = total + start
        if start < 0 {
            return
        }
    }
    if start > total {
        return
    }
    // 到末尾
    if length < 0 {
        length = total
    }

    end := start + length
    if end > total {
        result = string(s[start:])
    } else {
        result = string(s[start:end])
    }

    return
}

SubStr("hello",0,1)  返回h

如果倒着截取,负数就是倒着取,倒着取第一个,SubStr("hello",-1,1) 返回 o

标签:return,substr,截取,JS,Golang,start,length,total
From: https://www.cnblogs.com/taoshihan/p/17375701.html

相关文章

  • golang控制语句和运算符
    一、go程序基础1、文件名go语言文件名命名规范:go语言的文件名必须以.go结尾。go语言的文件名必须以小写字母开头,否则会报错。go语言的文件名不能包含空格,否则会报错。go语言的文件名不能包含特殊字符,否则会报错。go语言的文件名不能包含中文,否则会报错。go语言的文件名不......
  • Vue进阶(七十八):Vue 定时器与 JS 定时器
    (文章目录)<hrstyle="border:solid;width:100px;height:1px;"color=#000000size=1">一、Vue定时器在vue中,有两种定时器,一是浏览器API,window对象上的;另一种就是vue/nodejs封装的,需要引入。import{setInterval,clearInterval}from'timers'建议使用window对象自带......
  • JSONP跨域的原理解析
    JavaScript是一种在Web开发中经常使用的前端动态脚本技术。在JavaScript中,有一个很重要的安全性限制,被称为“Same-OriginPolicy”(同源策略)。这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。 JavaScript这......
  • 浅谈一下对于 js 中的 this 的理解
    浅谈一下对于js中的this的理解对于this值的定义:简单来说this是一个对象,这个对象具体的值是什么,取决于运行时的环境,即代码执行时的环境。MDN:当前执行上下文(global、function或eval)的一个属性,在非严格模式下,总是指向一个对象,在严格模式下可以是任意值。......
  • js基础--this的作用域、函数的调用与bind高阶函数
    this的作用域箭头函数也无法通过call、apply改变this箭头函数也没有arguments函数的调用并指定this使用call调用时先指定参数this,后指定实参。。apply则是数组传递实参bind高阶函数:可以创建一个新的函数并锁死this与实参......
  • js 阻塞
    相关链接:https://www.bilibili.com/video/BV1Zy4y1K7SH/?p=42&share_source=copy_web&vd_source=6bac919d0e003af4419677ae239707bf......
  • js基础---函数参数
    arguments:arguments不是真正的数组所以无法使用数组的方法可变参数:可变参数可以和形参配合使用,可变参数在形参后面。......
  • 提取最新的各国疫情数据中json字符串
    1.正则表达式提取json字符串:   -----------------------------------------------------------------初始数据-----------------------------------------------------------------try{window.fetchIndexMallList={"success":true,"errorCode":0,"result......
  • js 原型链
    1.原型原型包含了构造函数的元信息,元信息包括构造函数本身、通用属性、通用方法、私有属性、原始值等等;由于原型本身也是对象,因此还包含一个特殊的属性__proto__,它用来访问原型的原型。2.原型链构造函数创造的实例可以访问构造函数的原型,如果这个原型刚好是其他构造函数的实......
  • 《渗透测试》WEB攻防-通用漏洞&文件上传&js验证&mime&user.ini&语言特性 2022 Day31
     1、文件上传-前端验证2、文件上传-黑白名单3、文件上传-user.ini妙用4、文件上传-PHP语言特性 前置:后门代码需要用特定格式后缀解析,不能以图片后缀解析脚本后门代码(解析漏洞除外)如:jpg图片里面有php后门代码,不能被触发,所以连接不上后门#详细点:1、检测层面:前......