中文字符串截取的JS函数代码可以使用slice
和substring
两种方法实现。下面详细介绍这两种方法的使用。
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技术站