`

js中按字节截取字符串

    博客分类:
  • js
阅读更多
功能:在网页中显示过长的字符串,截取指定长度,结尾添加省略号。

例如:
testStr = "测试1字符串";
autoAddEllipsis(testStr, 1); // "测..."
autoAddEllipsis(testStr, 2); // "测..."
autoAddEllipsis(testStr, 3); // "测..."
autoAddEllipsis(testStr, 4); // "测试..."
autoAddEllipsis(testStr, 5); // "测试1..."
autoAddEllipsis(testStr, 6); // "测试1..."
autoAddEllipsis(testStr, 7); // "测试1字..."

代码如下,其中全角半角判断部分isFull()的逻辑偷懒了,有特殊符号需求的可以自己定制。
/*
 * 处理过长的字符串,截取并添加省略号
 * 注:半角长度为1,全角长度为2
 * 
 * pStr:字符串
 * pLen:截取长度
 * 
 * return: 截取后的字符串
 */
function autoAddEllipsis(pStr, pLen) {

	var _ret = cutString(pStr, pLen);
	var _cutFlag = _ret.cutflag;
	var _cutStringn = _ret.cutstring;

	if ("1" == _cutFlag) {
		return _cutStringn + "...";
	} else {
		return _cutStringn;
	}
}

/*
 * 取得指定长度的字符串
 * 注:半角长度为1,全角长度为2
 * 
 * pStr:字符串
 * pLen:截取长度
 * 
 * return: 截取后的字符串
 */
function cutString(pStr, pLen) {

	// 原字符串长度
	var _strLen = pStr.length;

	var _tmpCode;

	var _cutString;

	// 默认情况下,返回的字符串是原字符串的一部分
	var _cutFlag = "1";

	var _lenCount = 0;

	var _ret = false;

	if (_strLen <= pLen/2) {
		_cutString = pStr;
		_ret = true;
	}

	if (!_ret) {
		for (var i = 0; i < _strLen ; i++ ) {
			if (isFull(pStr.charAt(i))) {
				_lenCount += 2;
			} else {
				_lenCount += 1;
			}

			if (_lenCount > pLen) {
				_cutString = pStr.substring(0, i);
				_ret = true;
				break;
			} else if (_lenCount == pLen) {
				_cutString = pStr.substring(0, i + 1);
				_ret = true;
				break;
			}
		}
	}
	
	if (!_ret) {
		_cutString = pStr;
		_ret = true;
	}

	if (_cutString.length == _strLen) {
		_cutFlag = "0";
	}

	return {"cutstring":_cutString, "cutflag":_cutFlag};
}

/*
 * 判断是否为全角
 * 
 * pChar:长度为1的字符串
 * return: true:全角
 * 			false:半角
 */
function isFull (pChar) {
	if ((pChar.charCodeAt(0) > 128)) {
		return true;
	} else {
		return false;
	}
}
0
0
分享到:
评论

相关推荐

    字符串按照指定的字节数来截取

    了解这些方法后,我们就可以灵活地根据需求截取字符串中的特定字节数部分了。但要注意,字节截取可能会涉及到字符编码问题,因此在实际操作时要特别留意编码格式,避免出现乱码或者截取不完整的情况。

    C#(.net)中按字节数截取字符串最后出现乱码问题的解决

    最近需要用到按字节数截取字符串。在网上找了很多方法。 Encoding.Default.GetString采用的Default Encoding.UTF8.GetBytes采用的是utf-8编码。这样当然是乱码。尤其出现中文时候。 对这类数据处理当然要用统一的...

    标题过长使用javascript按字节截取字符串

    var str = "javascript高效按字节截取字符串方法getBlengthjavascript高效按字节截取字符串方法getBlength"; str = str.replace(/./g,str).replace(/./g,str); console.log("创造的字符串长度为:", str.length); ``...

    JavaScript截取中文字符串

    字符串截取是指从一个较长的字符串中提取出特定长度或范围内的子字符串的过程。这在很多场景下都非常有用,比如在展示文章列表时只显示前几行文字,或者在处理大量数据时仅关注某些字段等。 ##### 2.2 中文字符编码...

    JS按字节截取字符长度实例

    本实例提供了一种方法,用于根据字节长度来截取字符串,并在必要时添加省略号,以达到对过长字符串的适配。 `autoAddEllipsis`函数是主要的接口,它接收两个参数:`pStr`表示待处理的字符串,`pLen`表示要截取的...

    js中根据字数截取字符串,不能截断url.docx

    为了满足上述需求,我们可以利用 JavaScript 来实现一个功能,该功能能够按照指定的字节数来截取字符串,并且确保不会截断 URL。下面将详细介绍该功能的具体实现过程。 #### 字符串截取与 URL 完整性保护的实现 ...

    javascript截取字符串(通过substring实现并支持中英文混合)

    本文将探讨在JavaScript中如何使用substring()和substr()方法截取字符串,并特别针对中英文混合的字符串提供解决方案。字符串截取是编程中的一项基础操作,它允许我们从一个给定的字符串中提取特定部分的字符序列。 ...

    字符串截取

    本篇主要介绍了一种根据指定字节数来截取字符串的方法,并考虑到了不同的编码方式对字符串长度的影响。此外,还涉及了一些关于如何使用 jQuery 操作 select 元素的示例代码。 #### 二、关键概念 - **字符串截取**:...

    Js自动截取字符串长度,添加省略号(……)的实现方法

    接下来,遍历字符串中的每个字符,判断其是否为多字节字符,根据字节长度进行累加,并在超过目标长度时截取字符串并添加省略号。 这个方法简单且实用,但请注意,它仅适用于基于UTF-8编码的字符串,对于其他编码...

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

    有了这些辅助函数,我们就可以实现按字节截取字符串的两个主要函数:`subCHString`和`subCHStr`。`subCHString`接受起始字节和结束字节,而`subCHStr`接受起始字节和要截取的字节数。 `subCHString`函数首先调用`...

    截取字符串

    字符串截取,顾名思义,就是从一个较长的字符串中提取出一部分内容。这通常涉及到两个主要参数:起始位置和截取长度。起始位置一般从0开始计数,截取长度则表示要获取的字符数量。根据不同的需求,字符串截取还可以...

    C#实现根据字节数截取字符串并加上省略号的方法

    本文实例讲述了C#按字节数截取字符串并在后面加上省略号…的方法,这是一个自定义的C#函数,函数的使用说明如下: 原始字符串 提取前endIdex个字节 &lt;returns&gt;&lt;/returns&gt; 函数代码如下: public static string ...

    js中根据字数截取字符串,不能截断url

    在截取字符串后,需要在末尾添加省略号,这需要先确定省略号在视觉上的长度(使用sizeAt方法计算),然后确保添加后不会超过指定的总字符数。 7. JavaScript代码示例及其应用 文件中给出了一个JavaScript代码示例,...

    用javascript实现截取字符串包含中文处理的函数

    在JavaScript中处理字符串时,经常会遇到需要截取字符串的情况。对于包含中文字符的字符串,由于中文字符通常占两个字节,因此简单的基于字符索引的截取方法可能无法正确处理中文。本篇文章将详细介绍如何使用...

    JS实现含有中文字符串的友好截取功能分析

    具体实现原理是在截取字符串之前,先遍历字符串中的每一个字符,判断其是否为中文字符。在JavaScript中,可以通过正则表达式匹配中文字符的Unicode编码范围,这个范围是`[\u4e00-\u9fa5]`。通过循环遍历,我们可以...

    Jquery截取中文字符串的实现代码

    在循环中,`substr()`用于获取字符串中的每个字节,`Ord()`函数(在PHP中,而不是JavaScript中)用于获取该字节对应的ASCII值。当遇到多字节字符(如UTF-8编码的中文字符)时,`cut_str()`会根据ASCII值判断字符的...

    Js字符串操作函数大全(更新)

    除了空格处理外,有时还需要截取字符串的一部分,例如在显示文章摘要时只显示部分内容。 - **Left 方法**:此方法返回字符串左边指定长度的子串。 ```javascript String.prototype.Left = function (len) { if ...

Global site tag (gtag.js) - Google Analytics