Javascript 自定义 trim、trimEnd、trimStart 替换自带的方法去掉字符串首位指定的字符
Javascript 自带的 trime 方法只能去掉空格,不能去掉制定的字符。可以自定义 String.prototype 方法来实现去掉指定的字符。
String.prototype.trim 去掉首尾指定的字符
```
String.prototype.trim = function (c) {
if (c == null || c == "") {
var str = this.replace(/^s*/, '');
var rg = /s/;
var i = str.length;
while (rg.test(str.charAt(--i)));
return str.slice(0, i + 1);
}
else {
var rg = new RegExp("^" + c + "*");
var str = this.replace(rg, '');
rg = new RegExp(c);
var i = str.length;
while (rg.test(str.charAt(--i)));
return str.slice(0, i + 1);
}
}
```
String.prototype.trimStart 去掉首部指定的字符
```
String.prototype.trimStart = function (c) {
if (c == null || c == "") {
var str = this.replace(/^s*/, '');
return str;
}
else {
var rg = new RegExp("^" + c + "*");
var str = this.replace(rg, '');
return str;
}
}
```
String.prototype.trimEnd 去掉未部指定的字符
```
String.prototype.trimStart = function (c) {
if (c == null || c == "") {
var str = this;
var rg = /s/;
var i = str.length;
while (rg.test(str.charAt(--i)));
return str.slice(0, i + 1);
}
else {
var str = this;
var rg = new RegExp(c);
var i = str.length;
while (rg.test(str.charAt(--i)));
return str.slice(0, i + 1);
}
}
```
将前面三个方法合并成一个,指定去掉首部还是尾部或首尾。通过 type 来指定去掉 start 还是 end。
```
String.prototype.trim = function (char, type) {
if (char) {
if (type == 'start') {
return this.replace(new RegExp('^\\'+char+'+', 'g'), '');
} else if (type == 'end') {
return this.replace(new RegExp('\\'+char+'+$', 'g'), '');
}
return this.replace(new RegExp('^\\'+char+'+|\\'+char+'+$', 'g'), '');
}
return this.replace(/^\s+|\s+$/g, '');
};
```
我的笔记