中文字符串截取的js函数代码

中文字符串截取的JS函数代码可以使用slicesubstring两种方法实现。下面详细介绍这两种方法的使用。

1. slice方法

slice() 方法可从已有的数组中返回选定的元素,并返回一个新数组,不会改变原数组。

字符串也支持 slice() 方法,用于提取字符串中的一部分,并返回一个新的字符串,也不会改变原字符串。

slice() 方法的语法:string.slice(start,end)

其中,start 是必需的,规定从哪个位置开始选取(从 0 开始),如果是负数,则是从字符串的末尾开始计算的位置。end 是可选的,规定切割结束处的位置(从 0 开始)。如果没有指定该参数,slice() 方法将一直选取到字符串的末尾。

实际上字符串的截取就是截取字符串的字符,而中文字符占用两个字符长度,所以我们需要对字符串长度进行特殊处理。

下面是一个例子:

function sliceStr(str, start, end) {
    var len=str.length;
    var s=0;
    for(var i=0;i<len;i++){
        if(str.charCodeAt(i)>255){
            s+=2;
        }else{
            s++;
        }
        if(s>start){
            start=i;
            break;
        }
    }
    if(s+1==end){
        return str.substring(start,i+1);
    }else{
        for(var j=start+1;j<len;j++){
            if(str.charCodeAt(j)>255){
                s+=2;
            }else{
                s++;
            }
            if(s==end){
                return str.substring(start,j+1);
            }
        }
    }
    return str.substring(start);
}

这个函数包含了字符串长度的特殊处理。

以下是示例:

sliceStr("测试字符串截取", 1, 4); // 测试
sliceStr("测试字符串截取", 3); // 字符串截取

2. substring方法

substring() 方法用于提取字符串中介于两个指定下标之间的字符或子串。返回的子串包括 start 处的字符,但不包括 end 处的字符。

substring() 方法的语法:string.substring(start,stop)

其中,start 是必需的,规定从哪个位置开始提取(从 0 开始),stop 是可选的,规定提取的结束处的位置(从 0 开始)。如果没有指定该参数,那么返回的子串会一直到字符串的结尾。

下面是一个例子:

function subStr(str, startLen, length) {
    var len = str.length,
        start = 0,
        end = 0,
        charLen = 0;
    for (var i = 0; i < len; i++) {
        if (str.charCodeAt(i) > 255) {
            charLen += 2;
        } else {
            charLen += 1;
        }
        if (charLen > startLen && !start) {
            start = i;
        }
        if (charLen > startLen + length) {
            end = i;
            break;
        }
    }
    return str.substring(start, end);
}

这个函数同样做了字符串长度的特殊处理。

以下是示例:

subStr("JS函数代码详解", 2, 4); // 函数代
subStr("JS函数代码详解", 2); // 函数代码详解

希望这可以帮助你理解中文字符串截取的JS函数代码的实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:中文字符串截取的js函数代码 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 详解闭包解决jQuery中AJAX的外部变量问题

    我很乐意为你详细讲解“详解闭包解决jQuery中AJAX的外部变量问题”的攻略。 什么是闭包 在JavaScript中,一个函数可以定义在另一个函数中,且该内部函数可以访问包含它的外部函数的变量和参数,甚至可以访问包含它的函数的变量和参数。这种内部函数在定义时创建了一个“闭包”,它可以访问所在函数作用域中的所有变量和参数,而这些变量和参数对外面的代码是不可见…

    JavaScript 2023年6月10日
    00
  • javascript开发技术大全-第3章 js数据类型

    JavaScript 开发技术大全 – 第3章 JS 数据类型 JavaScript 语言在数据类型方面相对于其他语言而言,具有非常灵活的特点。这是因为 JavaScript 在遵循 ECMAScript 规范的基础上,主要采用了基本数据类型和引用数据类型两种方式来处理数据。 基本数据类型 JavaScript 的基本数据类型有以下 7 种: 数字类型(Nu…

    JavaScript 2023年5月17日
    00
  • 全面解析Bootstrap表单使用方法(表单按钮)

    Bootstrap是目前最为流行的前端UI框架之一,它内置了很多实用的组件,其中表单是必不可少的一个组件。在表单的使用中,表单按钮起着非常重要的作用,它可以帮助我们实现一些非常实用的功能,例如提交表单、删除数据等。 下面我将为大家详细讲解如何使用Bootstrap表单按钮。 一、表单按钮的基本用法 在使用Bootstrap表单按钮的时候,我们需要先引入Boo…

    JavaScript 2023年6月10日
    00
  • 详解用js代码触发dom事件的实现方案

    下面是详解用JS代码触发DOM事件的实现方案的攻略。 什么是DOM事件? DOM事件,是当用户与网页交互时产生的事件。例如,当用户点击鼠标、滚动页面或按下键盘时,都会触发DOM事件。 如何用JS代码触发DOM事件? 我们可以使用JS代码来模拟用户与网页交互,从而触发DOM事件。以下是三种JS代码触发DOM事件的实现方案: 利用dispatchEvent方法 …

    JavaScript 2023年6月10日
    00
  • JS入门必备之八种数据类型

    JS语言作为一门动态类型语言,支持8种不同的数据类型,这些数据类型会在JS编程的各个领域中发挥着十分重要的作用,这里我给大家总结了一份完整的攻略。 一、Number类型 Number类型是JS中最基本的数据类型,表示数字数据,可以用十进制、二进制、八进制、十六进制等不同进制表示。在JS中,数值类型可以直接使用数值和运算符来实现计算,如下示例: var sum…

    JavaScript 2023年5月28日
    00
  • JS简单添加元素新节点的方法示例

    下面我来详细讲解“JS简单添加元素新节点的方法示例”的完整攻略。 什么是添加新节点? 在 JavaScript 中,向 HTML 文档中添加节点(节点就是 HTML 元素)的过程称为添加新节点。 添加新节点的方法 使用 JavaScript 可以轻松地添加新节点到 HTML 页面中。下面我们来看看两个添加新节点的示例方法。 方法一:appendChild()…

    JavaScript 2023年6月10日
    00
  • 全面解析JavaScript Module模式

    全面解析JavaScript Module模式 什么是Module模式 Module模式是指使用JavaScript语言实现的,在一个程序或一个库中,将类似函数、变量等进行私有化,封装成一个独立的对象(即Module)来提供给外部调用。这种模式能够帮助开发者避免命名冲突和变量污染 ,提高代码的可维护性。 Module模式的基本实现 Module模式的基本核心…

    JavaScript 2023年5月27日
    00
  • JavaScript面试题大全(推荐)

    感谢对本网站的关注和支持。以下是对于“JavaScript面试题大全(推荐)”的完整攻略: 简介 “JavaScript面试题大全(推荐)”是一篇完整的JavaScript面试题目合集,其中包含了常见的JavaScript面试题以及它们的详细答案解释。本文的题目难度从基础到高级不等,覆盖了面试中常见的各个知识点。该题集不仅适用于求职者准备面试,也适合企业HR…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部