在Javascript中左边修剪

时间:2009-10-20 11:08:14

标签: javascript regex trim

有许多脚本用于修剪javascript中的字符串,但没有一个如何左边修剪字符串。

这就是我用来修剪的东西:

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}

但是我想稍微更改一下并创建一个名为leftTrim的新函数,它只删除前导空格。我的正则表达式非常有限,所以非常感谢任何帮助。

干杯

7 个答案:

答案 0 :(得分:21)

使用:

String.prototype.leftTrim = function() {
    return this.replace(/^\s+/,"");
}

在正则表达式中:

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

所以......

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

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

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

答案 1 :(得分:4)

我刚刚回答a similar question,但这是我对你问题的解决方案。

String.prototype.trimLeft = String.prototype.trimLeft || function () {
    var start = -1;

    while( this.charCodeAt(++start) < 33 );

    return this.slice( start, this.length);
};

上述解决方案基于Ariel Flesler fast trim function以及Firefox 3.5及更高版本在String对象上具有内置trimLeft方法的事实。

答案 2 :(得分:1)

String.prototype.leftTrim = function() {
        return this.replace(/^\s+/,"");
}

答案 3 :(得分:1)

很简单,正则表达式需要一个小改动:

String.prototype.leftTrim = function() {
    return this.replace(/^\s+/,"");
}

另见:

答案 4 :(得分:0)

以使其保持最新状态:

ES 10:

ES10具有cout<< c.volume(); 功能。

它的同义词是trimStart

trimLeft

ES6:

ES6版本可能是:

const greeting = '   Hi!   ';
console.log(greeting); 
// "   Hi!   "
console.log(greeting.trimStart()); 
// "Hi!   "
console.log(greeting.trimLeft()); 
// "Hi!   "

答案 5 :(得分:0)

答案 6 :(得分:0)

您可以从 ECMAScript2015 (ES6) 使用内置函数 String.prototype.trimStart()

var str1 = "    Lorem ipsum dolor sit amet    ";
var str2 = "Lorem ipsum dolor sit amet    ";
var str3 = "    Lorem ipsum dolor sit amet";
var str4 = "Lorem ipsum dolor sit amet";

console.log(str1.trimStart());
console.log(str2.trimStart());
console.log(str3.trimStart());
console.log(str4.trimStart());

在此处检查浏览器兼容性https://developer.mozilla.org