开发者

Left Trim in Javascript

There are a lot of scripts out there to trim a string in JavaScript, but none that allow you to just left trim a string.

This is what I use to trim:

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

I would like to change this a little and cre开发者_如何学Goate a new function called leftTrim that only removes the leading space.


Use:

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

In the regex the:

  • ^ means "from the beginning of the string"
  • \s means whitespace character class
  • + means one-or more (greedy)

so....

  • ^\s+ means "one or more consecutive whitespace characters from the beginning of the class"

Note: The g flag at the end of your regex is unnecessary as the anchors (^ and $) explicitly define what will match. There cannot be multiple matches.

See https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp for details on regex syntax in javascript


to keep this updated:

ES 10:

with ES10 comes the trimStart functionality.

a synonym for it is trimLeft.

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

ES6:

an ES6 version could be:

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

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



I've already answered a similar question just a few moments ago, but here's my solution to your question.

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

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

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

The above solution is based on Ariel Flesler fast trim function and the fact that Firefox 3.5 and above has a built-in trimLeft method on the String object.


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


Very simple, the regex needs a small change:

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

See also:

  • Faster JavaScript Trim
  • Using Regular Expressions with JavaScript and ActionScript
  • JavaScript RexExp object reference


From the ECMAScript2015 (ES6) you can use the Built-In function 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());

Check browser compatibility here: https://developer.mozilla.org


First Way -

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

Second Way -
Using the trimStart functionality.

    var fruit = "    apple";
    console.log(fruit.trimStart());


Most easiest way

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

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜