在Javascript中左边修剪

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)

在正则表达式中:

  • ^表示"从字符串的开头"
  • \ s表示空白字符类
  • +表示一个或多个(贪婪)

所以....

  • ^\s +表示"从类的开头开始的一个或多个连续的空白字符"

注意:g正则表达式末尾的标志是不必要的,因为锚点(^和$)明确定义了匹配的内容.不能有多个匹配项.

有关javascript中正则表达式语法的详细信息,请参阅https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp


Ion*_*tan 5

刚才我已经回答了一个类似的问题,但这是我对你的问题的解决方案。

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 及更高版本trimLeftString对象上具有内置方法的事实。


Rob*_* F. 5

保持更新:

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)