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/
精彩评论