+ 我要发布
我发布的 我的标签 发现
浏览器扩展
斑点象@Edge

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, ''); }; ```
我的笔记