`

JS正确截取单字节和双字节混和字符串的方法

阅读更多
function substr(str, len)
{
if( ! str || ! len)
{
return '';
}
// 预期计数:中文2字节,英文1字节
var a = 0;
// 循环计数
var i = 0;
// 临时字串
var temp = '';
for (i = 0; i < str.length; i ++ )
{
if (str.charCodeAt(i) > 255)
{
// 按照预期计数增加2
a += 2;
}
else
{
a ++ ;
}
// 如果增加计数后长度大于限定长度,就直接返回临时字符串
if(a > len)
{
return temp;

}
// 将当前内容加到临时字符串
temp += str.charAt(i);
}
// 如果全部是单字节字符,就直接返回源字符串
return str;
}

var str = "呵呵he哈哈嘿嘿and";

document.write("字符串:<font color='red'>" + str + "</font><br /><br />");

document.write("javascript 默认截取10个字节的返回值:<br />");

document.write("<font color='red'>" + str.substr(0, 10) + "</font><br /><br />");

document.write("用本文介绍的方法截取10个字节的返回值:<br />");

document.write("<font color='red'>" + substr(str, 10) + "</font><br /><br />");

document.write("截取9个字节的返回值:<br />");

document.write("<font color='red'>" + substr(str, 9) + "</font><br /><br />");

</script>


-------------------------------------------------------------------------------------------

還有更簡單的方法(正則)

<script>

a = "中文22測試1111"

b = "51js.com"

function dd(str, c)
{
var t1 = str.replace(/([\u0391-\uffe5])/ig, '$1a');
var t2 = t1.substring(0, c);
var t3 = t2.replace(/([\u0391-\uffe5])a/ig, '$1') + "<br/>";
document.write(t3);
}

dd(a, 8);

dd(b, 8);


分享到:
评论

相关推荐

    delphi 实现截取字符串中中文+英文混合截取

    总结来说,处理Delphi中的中文和英文混合字符串截取,关键在于理解Unicode字符串的特性,正确选择和使用字符串截取函数,并在必要时进行字节对齐和编码转换。通过这样的方式,我们可以确保在处理多语言文本时不会...

    C++中英混合字符串截取

    以下是一个简单的例子,展示如何正确地截取中英混合字符串: ```cpp #include #include #include #include std::wstring utf8_to_wstring(const std::string& utf8_str) { std::wstring_convert...

    高效中英文字符串截取方法

    本文将详细介绍一种用于高效截取中英文混合字符串的方法。该方法适用于处理大量数据(例如10万条记录),能够在极短的时间内(例如1秒)完成所需的操作。这种方法主要应用于ASP.NET和C#环境,对于那些希望优化字符串...

    JavaScript截取中文字符串

    ### JavaScript截取中文字符串知识点详解 #### 一、引言 在进行文本处理时,我们经常需要对字符串进行截取操作。特别是在处理包含多种字符集(如英文与中文)的字符串时,考虑到不同字符编码长度的差异性,简单地...

    Java截取中英文混合字符串的方法

    Java截取中英文混合字符串的方法 Java截取中英文混合字符串的方法是指在Java语言中截取混合了...Java截取中英文混合字符串的方法需要考虑到编码方式和汉字占用字节长度的问题,并使用特殊的方法来保证汉字不被截半个。

    超实用c#按字节截取长度(原创)

    根据题目描述,本节将详细介绍一种适用于单字节与双字节混合字符串的截取方法。该方法通过逐步逼近的方式,确保最终截取的结果符合预期的字节长度。具体步骤如下: 1. **初始化**:首先,根据所需截取的字节数`...

    c#截取指定长度,中英文混合字符串

    ### C# 截取指定长度的中英文混合字符串方法解析 在C#中处理文本时,经常需要对字符串进行截取操作。对于包含中文字符的字符串来说,由于一个中文字符通常占据两个字节的位置(在某些编码下),因此在进行长度判断...

    C#实现中英文混合字符串截取的方法

    这个方法巧妙地处理了中英文混合字符串的截取问题,确保了截取结果的正确性。在实际应用中,你可以根据需要调整这个方法,例如添加对其他多字节字符集的支持,或者优化性能。此外,此方法也可以作为一个基础,扩展到...

    java按字节截取带有汉字的字符串的解法(推荐)

    在Java编程语言中,处理包含...通过这样的方法,我们可以确保即使在处理混合字符的字符串时,也能正确地按字节截取而不破坏字符完整性。这在处理数据库字段长度限制或传输数据时特别有用,尤其是在涉及多字节字符集时。

    Java精确截取字符串.pdf

    在Java编程中,有时我们需要对字符串进行精确截取,...对于不同的场景,需要选择合适的方法,确保截取后的字符串既能满足长度要求,又能正确显示其中的文本内容。在实际开发中,可以根据项目需求选择最佳的解决方案。

    PHP 不区分中英文截取utf8字符串

    在这个例子中,我们先计算了字符串的总字节数,然后确定了截取的字节范围,最后使用`mb_substr()`截取。 在提供的`demo.php`文件中,应该包含了实现上述功能的示例代码。通过分析这个示例,你可以更深入地理解如何...

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

    示例函数sub()使用正则表达式来处理中英文混合字符串,通过比较替换后的字符串长度来判断截取长度是否正确。 示例代码如下: ```javascript &lt;script type="text/javascript"&gt; var sub = function(str, n) { var r...

    截取中英文字符串函数

    可以截取中英文字符串,也可以含有字符,里面有好几个方法 有按字符个数截取 有按字节数来截取不会存在乱码

    [待删除]字符串截取 - 中英文

    因此,当在Java程序中处理包含中英文混合的字符串时,必须考虑到编码差异,以避免截取错误或乱码的出现。 ### 实践应用 在实际开发中,特别是在Web开发、文本分析等领域,正确处理多语言字符串是非常关键的。使用...

    Pb字符串中的中文和英文(含符号)拆分

    这个函数能够有效地处理中文和英文混合的字符串,将其拆分为单独的中文部分和英文部分。通过调用 `uf_split_str_enorcn('中字A文C')`,我们将得到 `'中字文'` 和 `'AC'` 作为结果。 在实际应用中,这个函数可以扩展...

    php 截取中英文混合字符串的方法

    通过学习和使用如`assoc_substr`这样的自定义函数,我们可以确保在处理中英文混合字符串时获得预期的结果。同时,持续关注和学习PHP相关的字符串处理技巧和最佳实践,能够帮助我们编写出更高效、更健壮的代码。

    JS判断字符串字节数并截取长度的方法

    正确的方法是首先将输入的字符串按照编码规则进行转换,计算出实际字节数,然后进行比较和截取操作。这一过程在实际开发中十分常见,无论是前端界面校验还是后端数据接收与存储时,都是需要考虑到的细节。通过上述...

    java实现中英文混合字符截取方法

    Java 实现中英文混合字符截取方法是一个复杂的问题,需要考虑 Unicode 编码的特点、避免汉字被截半个和正确处理中英文混合字符串。通过本文的介绍,读者可以了解 Java 实现中英文混合字符截取方法的思路和实现细节,...

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

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

Global site tag (gtag.js) - Google Analytics