17

有很多脚本可以在 javascript 中修剪字符串,但没有一个如何左修剪字符串。

这是我用来修剪的:

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

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

干杯

4

7 回答 7

30

采用:

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

于 2009-10-20T11:10:13.927 回答
5

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

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

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

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

上述解决方案基于Ariel Flesler 快速修剪功能以及 Firefox 3.5 及更高版本在对象上具有内置trimLeft方法的事实。String

于 2009-10-20T11:19:50.430 回答
5

保持更新:

ES 10:

ES10 自带trimStart功能。

它的同义词是trimLeft

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

ES6:

ES6 版本可能是:

function trimLeft(string) {
  const first = [...string].findIndex(char => char !== ' ');
  return string.substring(first, string.length);
}

console.log(trimLeft("   Hi!   ", chars));
// "Hi!   "


于 2019-03-08T14:28:53.707 回答
2
String.prototype.leftTrim = function() {
        return this.replace(/^\s+/,"");
}
于 2009-10-20T11:11:10.893 回答
2

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

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

也可以看看:

于 2009-10-20T11:12:31.147 回答
2

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

于 2021-07-05T22:06:30.120 回答
0

最简单的方法

var dog = "    Hi    ";
var keywordvalue = (dog.trimLeft());
alert(keywordvalue);

https://www.codehaven.co.uk/javascript/trim-left-javascript-text/

于 2020-11-16T11:01:03.423 回答