有许多脚本用于修剪javascript中的字符串,但没有一个如何左边修剪字符串。
这就是我用来修剪的东西:
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
但是我想稍微更改一下并创建一个名为leftTrim的新函数,它只删除前导空格。我的正则表达式非常有限,所以非常感谢任何帮助。
干杯
答案 0 :(得分:21)
使用:
String.prototype.leftTrim = function() {
return this.replace(/^\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