最开发一年以来,经常碰到会碰到一些相似的处理,因而想对一些通用的方法进行封装,以便于平时开发用。但是因为经验有限,不知道这样封装后对系统整体的性能是否有影响,所以整理后并写在园区,忘各位大侠指正。以下是本人对js的string的类经常使用的一些方法扩充。
1、经常在对某些字符进行匹配或者保存的时候,希望去除空格整理以下三个方法:
//去除所有的空格
String.prototype.trim = function() {
return this.replace(/(^\s+)|\s+$/g, "");
};
//去除做空格
String.prototype.trimLeft = function() {
return this.replace(/^\s*/g, '');
};
//去除右空格
String.prototype.trimRight = function() {
return this.replace(/\s*$/g, '');
}
例如:" 含 有 ".trim() 结果为:"含有";
" 含 有 ".trimLeft() 结果为:"含 有 ";
" 含 有 ".trimRight() 结果为:" 含 有"
2、用于判断是否包含某个字符
String.prototype.contain = function(value) {
return this.indexOf(value) !== -1;
};
例如:"包含123".contain("123") 结果为"true"
"包含123".contain("1234") 结果为"false"
3、把某个字符插入到该字符的某个位置
String.prototype.insert = function(startIndex, value) {
if (this.length < startIndex) {
return this + value;
} else {
return this.substring(0, startIndex) + value + this.substring(startIndex);
}
};
例如:"我中国人".insert(1,"是") 结果:"我是中国人"
4、去除一段字符串中所有的html标签
String.prototype.unHtml = function() {
return this.replace(/<[^>].*?>/g, "");
}
例如:"<span>你好</span>".unHtml() 结果:"你好"
5、首字母大写
String.prototype.toPascal = function() {
if (this.length === 0) {
return this;
} else {
return this.charAt(0).toUpperCase() + this.substring(1);
}
}
6、首字母小写
String.prototype.toCamel = function() {
if (this.length == 0) {
return this;
}
return this.charAt(0).toLowerCase() + this.substring(1);
}
7、替换字符串数据,如下方式调用
String.prototype.format = function(args) {
var result = this;
if (typeof (args) === "object" && arguments.length === 1) {
for (var key in args) {
if (args[key] != undefined) {
var reg = new RegExp("({" + key + "})", "g");
result = result.replace(reg, args[key]);
}
}
} else {
for (var i = 0, imax = arguments.length; i < imax; i++) {
if (arguments[i] != undefined) {
var reg = new RegExp("({[" + i + "]})", "g");
result = result.replace(reg, arguments[i]);
}
}
}
return result;
}
例子:var str1 = "我是{0},今年{1}了";
var result1 = str1.format("李雷", 22);
结果是:"我是李雷,今年22了"
var result1 =str1.format({ name: "李磊", age: 22 });
结果是:"我是李磊,今年22了"
以上我本来整理,如果有不合理的地方望大家指正,若还有什么比较通用的方法也希望大家能共享下,呵呵。
浙公网安备 33010602011771号