JavaScript扩展String类:长度计算、格式化与更多

需积分: 15 3 下载量 167 浏览量 更新于2024-09-17 收藏 7KB TXT 举报
"JavaScript扩展基础类" 在JavaScript中,我们经常需要对内置对象进行扩展以满足特定需求。这里介绍的是对String对象的一些扩展方法,包括计算字符串的实际长度(包括中文和英文字符)、格式化字符串、去除字符串首尾空格、检查字符串是否包含子串以及比较字符串长度等。 1. 计算字符串长度: `String.prototype.charlen` 方法用于计算字符串的长度,包括中文和英文字符。这个方法通过正则表达式 `[^\x00-\xff]` 匹配非ASCII字符(通常为中文字符),然后将匹配到的非ASCII字符数量加到原始字符串的长度上,从而得到包含中文字符的总长度。 2. 字符串格式化: `String.prototype.format` 方法类似于C语言中的`printf`函数,允许使用`${}`占位符替换为传入的参数。方法内部使用`replace`函数和一个回调函数,将匹配到的`$\{(\d+)\}`模式替换为对应位置的参数值。 3. 去除首尾空格: `String.prototype.trim` 方法用于去除字符串的首尾空格。它使用正则表达式`/(^\s*)|(\s*$)/g`匹配并替换掉字符串开始和结束的空格。 4. 检查是否包含子串: `String.prototype.contains` 方法检测字符串是否包含指定的子串。通过调用`indexOf`方法查找子串,并检查返回值是否不等于-1来确定是否包含。 5. 比较字符串长度: `String.prototype.compare` 方法用于比较两个字符串的长度。首先检查两个字符串的长度,如果长度不同则直接返回长度差;如果长度相同,则逐个字符比较Unicode码点,直到找到不同的字符或遍历完所有字符,返回第一个不同字符的码点差。 6. 替换指定长度的字符串: `String.prototype.replaceLen` 方法可以替换字符串中从指定位置开始的一定长度的子串。它首先检查起始位置和长度的有效性,然后遍历字符串,将指定范围内的字符替换为新的字符串。 这些扩展方法为日常开发提供了便利,使我们能更高效地处理和操作字符串。它们可以方便地添加到全局作用域或者某个自定义的工具库中,以供后续项目使用。