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

yizhihongxing

中文字符串截取的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日

相关文章

  • 如何动态加载外部Javascript文件

    动态加载外部 JavaScript 文件是指在页面运行时,通过 JavaScript 代码动态地向页面添加新的外部 JS 文件,并使其生效。这种方式可以提高页面的响应速度和减轻服务器压力,因为未使用的 JavaScript 代码不会提前加载,只有在需要时才被加载。 以下是实现动态加载外部 JavaScript 文件的完整攻略: 创建 <script&g…

    JavaScript 2023年5月27日
    00
  • 获取input标签的所有属性的方法

    获取input标签的所有属性的方法可以基于JavaScript实现。主要流程包括获取input标签、获取input标签的所有属性以及遍历输出所有属性。具体步骤如下: 步骤 第一步:获取input标签 首先,我们需要获取input标签元素。可以通过document.querySelector(selector)获取: const inputElement = …

    JavaScript 2023年6月11日
    00
  • javascript Number 与 Math对象的介绍

    针对“JavaScript Number 与 Math 对象的介绍”的完整攻略,以下为详细说明: JavaScript Number 介绍 JavaScript Number 对象用于在代码中处理数字。JavaScript 中的数字可以是,十进制,二进制,八进制,十六进制和科学计数法。 语法 var x = 123; // 十进制 var x = 0xff;…

    JavaScript 2023年5月28日
    00
  • JS实现的多张图片轮流播放幻灯片效果

    下面是 JS 实现多张图片轮流播放幻灯片效果的完整攻略: 确定需求 在实现多张图片轮流播放幻灯片效果前,我们需要明确一些需求: 显示多张图片:需要将多张图片放在同一个容器中,用于轮流播放; 轮流播放图片:需要编写 JS 代码实现轮流播放多张图片的逻辑; 显示切换控制按钮:为了方便用户手动控制图片切换,可以添加切换控制按钮; 自动轮播:为了提升用户体验,可以设…

    JavaScript 2023年5月28日
    00
  • js实现的在本地预览图片功能示例

    “js实现的在本地预览图片功能”的攻略如下: 1. 了解FileReader API JavaScript中的FileReader API可以让我们在浏览器中读取文件,包括图片等二进制文件。该API中最常用的方法是readAsDataURL(),用于读取指定文件并将其转换为Data URL格式,以便在HTML <img>元素中进行显示。 以下是一…

    JavaScript 2023年6月11日
    00
  • JavaScript操作DOM元素的childNodes和children区别

    当操作网页中的DOM元素时,常常需要获取元素的子元素以及对这些子元素进行操作。在JavaScript中,有两个常用的属性用于获取DOM元素的子元素,分别是childNodes和children。虽然它们的功能类似,但也有一些区别。下面我们进行一一讲解。 childNodes属性 childNodes属性返回某一元素的所有子节点,包括文本节点。这个属性返回的对…

    JavaScript 2023年6月11日
    00
  • JavaScript学习笔记之DOM基础操作实例小结

    JavaScript(JS)是一种广泛使用的脚本语言,常用于网页设计与动态交互效果实现。DOM(Document Object Model)文档对象模型是JS操作网页中HTML元素和样式的接口。掌握DOM基础操作是学习JS的重要一步,本文将为你介绍如何使用DOM对网页进行修改操作。 1. 加载HTML和JS 在HTML文件中引入JS,然后再通过documen…

    JavaScript 2023年6月10日
    00
  • IE浏览器中怎么调试JavaScript程序?

    在IE浏览器中,我们可以使用开发者工具进行JavaScript代码的调试。下面是一些调试JavaScript程序的步骤: 打开开发者工具:在IE浏览器中,可以在菜单栏中选择“工具”->“开发人员工具”,或按下F12键打开开发者工具。 选择“调试”选项卡:在开发者工具中,点击“调试”选项卡,即可开始调试JavaScript程序。 设置断点:在代码中选择需…

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