jam*_*ley 12 javascript regex trim
有很多脚本在javascript中修剪一个字符串,但没有如何左边修剪字符串.
这是我用来修剪:
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
Run Code Online (Sandbox Code Playgroud)
但是我想稍微改变它并创建一个名为leftTrim的新函数,它只删除前导空格.我的正则表达式非常有限,所以非常感谢任何帮助.
干杯
Jon*_*and 24
使用:
String.prototype.leftTrim = function() {
return this.replace(/^\s+/,"");
}
Run Code Online (Sandbox Code Playgroud)
在正则表达式中:
所以....
注意:g正则表达式末尾的标志是不必要的,因为锚点(^和$)明确定义了匹配的内容.不能有多个匹配项.
有关javascript中正则表达式语法的详细信息,请参阅https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp
刚才我已经回答了一个类似的问题,但这是我对你的问题的解决方案。
String.prototype.trimLeft = String.prototype.trimLeft || function () {
var start = -1;
while( this.charCodeAt(++start) < 33 );
return this.slice( start, this.length);
};
Run Code Online (Sandbox Code Playgroud)
上述解决方案基于Ariel Flesler 快速修剪功能以及 Firefox 3.5 及更高版本trimLeft在String对象上具有内置方法的事实。
保持更新:
ES 10:
ES10 带来了trimStart功能。
它的同义词是trimLeft。
const greeting = ' Hi! ';
console.log(greeting);
// " Hi! "
console.log(greeting.trimStart());
// "Hi! "
console.log(greeting.trimLeft());
// "Hi! "
Run Code Online (Sandbox Code Playgroud)
ES6:
ES6 版本可能是:
function trimLeft(string) {
const first = [...string].findIndex(char => char !== ' ');
return string.substring(first, string.length);
}
console.log(trimLeft(" Hi! ", chars));
// "Hi! "
Run Code Online (Sandbox Code Playgroud)