本文介绍了通过扩展 String.prototype 实现的多个实用 JavaScript 函数。包括支持正则表达式数组的批量替换方法 ReplaceAll,去除两端、左侧及右侧空白的 Trim、LTrim 和 RTrim,计算含中文长度的 ChineseLength,以及判断字符串开始与结束的 StartsWith 和 EndsWith 方法。此外还涵盖了指定位置移除字符的 Remove 功能,旨在提升字符串处理效率。
// 代码复制结束
JavaScript String.prototype 扩展函数实现指南
代码如下:
// 基于 String.prototype 的扩展使用示例
// 实现批量替换功能,例如:str.ReplaceAll([/a/g,/b/g,/c/g],["aaa","bbb","ccc"])
String.prototype.ReplaceAll=function (A,B) {
var C=this;
for(var i=0;i<A.length;i++) {
C=C.replace(A[i],B[i]);
};
return C;
};
// 去除字符串两端的空白字符
String.prototype.Trim=function () {
return this.replace(/(^[/t/n/r]*)|([/t/n/r]*$)/g,'');
};
// 去除字符串左侧的空白字符
String.prototype.LTrim=function () {
return this.replace(/^[/t/n/r]/g,'');
};
// 去除字符串右侧的空白字符
String.prototype.RTrim=function () {
return this.replace(/[/t/n/r]*$/g,'');
};
// 计算字符串长度,其中中文字符按2个单位计算
String.prototype.ChineseLength=function()
{
return this.replace(/[^/x00-/xff]/g,"**").length;
};
// 判断字符串是否以指定的后缀字符串结束
String.prototype.EndsWith=function (A,B) {
var C=this.length;
var D=A.length;
if(D>C)return false;
if(B) {
var E=new RegExp(A+'$','i');
return E.test(this);
}else return (D==0||this.substr(C-D,D)==A);
};
// 判断字符串是否以指定的前缀字符串开始
String.prototype.StartsWith = function(str)
{
return this.substr(0, str.length) == str;
};
// 从指定起始位置开始,移除指定长度的字符
String.prototype.Remove=function (A,B) {
var s='';
if(A>0)s=this.substring(0,A);
if(A+B<this.length)s+=this.substring(A+B,this.length);
return s;
};