The string class in Java has a trim () to remove space characters before and after a string. jquery also has the trim () method to remove strings before and after a character variable.
However, there is no corresponding trim () method in JavaScript. Fortunately, there are regular expressions in JavaScript, and the String object has the Replace () method. The effect of the trim () method is achieved using JavaScript's regular and replace methods.
The next two methods are described. In fact, the two methods are similar.
Is the definition of the trim () method on the prototype property of the string object and provides an implementation that, after implementation, is able to remove space characters before and after the string by using the string object name. Trim ().
String.prototype.trim = function () { //TODO}
Method1 before and after the empty characters respectively replace
The string object for JavaScript has a replace method. The ability to replace the characters in a string object, where we take advantage of the Replace method of the string object. Replace the empty strings before and after each. The effect of deleting an empty string as a whole.
String.prototype.trim = function () {return this.replace (/^\s+/, ""). Replace (/\s+$/, ""); var sTest1 = "This is a test sentence. "; Alert (Stest1.trim ());
Explains the detailed method body of the trim () method
This represents the current object within the method
The first replace after this deletes the space character in front of the string
Where /^\s+/ represents the beginning of the 1 to many space characters , this regular is perl-style
can also be replaced with regexp objects . can be changed to
var regobj = new RegExp ("^\\s+"), return This.replace (Regobj, ""). Replace (/\s+$/, "");
Here we simply change the normal form of the matching preceding space character.
The same can be replaced by the following regular mode, the final code is
var regObj1 = new RegExp ("^\\s+"), var regObj2 = new RegExp ("\\s+$"), return This.replace (RegObj1, ""). Replace (RegObj2, "") ;
Method2 before and after the space total replacement
The overall substitution method is similar to the previous one. The front is two times replace, with two regular to match the front and back of the space character, the overall substitution, with a regular table, to replace the preceding space character.
String.prototype.trim = function () {return This.replace (/^\s+ (. *?)) \s+$/, "$");} var sTest2 = "This is a new sentence. "; Alert (Stest2.trim ());
Here return This.replace (/^\s+. *?
) \s+$/, "$");
Use a regular /^\s+ (. *?
) \s+$/ matches the space character before and after . The result of a backward reference in the following form
A value of (. *?) that represents the string to be returned before and after a space is deleted .
The regular way here can also be changed to RegExp way. I'm not going to change it here.
The two methods described above. is completed by defining a new method on the prototype property of the string object.
It is also possible to not define a new trim () method. Directly through the body of the Replace in the method body to achieve the effect of the deletion before and after the string.
Attach the final code
<script>//Method1String.prototype.trim = function () {//Return This.replace (/^\s+/, ""). Replace (/\s+$/, "");// var regobj = new RegExp ("^\\s+");//Return This.replace (Regobj, ""). Replace (/\s+$/, ""); var regObj1 = new RegExp ("^\\s+"); var regObj2 = new RegExp ("\\s+$"), return This.replace (RegObj1, ""). Replace (RegObj2, ""); var sTest1 = "This is a test sentence. "; Alert (Stest1.trim ());//Method2String.prototype.trim = function () {return This.replace (/^\s+ (. *?)) \s+$/, "$");} var sTest2 = "This is a new sentence. "; Alert (Stest2.trim ());</script>
Implementation of the Trim method in JavaScript