Home  >  Article  >  Web Front-end  >  In-depth understanding of JavaScript function replace_javascript skills

In-depth understanding of JavaScript function replace_javascript skills

WBOY
WBOYOriginal
2016-05-16 17:40:341036browse

The replace function accepts two parameters. The first parameter is a string or a regular expression. The first parameter can also accept a string or a function.

First of all, if the first parameter is a string, we no longer need to say "I am a boy".replace("boy","girl"), and the output is: "I am a girl". What I want to talk about here is the case where the first parameter is regular. For regular expressions, the replacement behavior will first be determined based on whether it is global (global//g). If it is all, all will be replaced. If it is non-global, only the first matching string will be replaced. For example:

Copy code The code is as follows:

"Ha Ha".replace(/bw b/g , "He") // He He

"Ha Ha".replace(/bw b/, "He") //He Ha

1: The second parameter is a string:

A special marker $ is agreed upon for regular replacement:

1.$i (i:1-99): Represents the text matched by the regular subexpression from left to right.
2.$&: Indicates the full text matching the regular expression.
3.$`(`:Switch skill key): Indicates the left text of the matching string.
4.$'(‘:single quote): indicates the text on the right side of the matching string.
5.$$: means $ transfer.
Here are a few demos:

Copy code The code is as follows:

"boy & girl".replace(/(w )s*&s*(w )/g,"$2 & $1") //girl & boy

"boy".replace(/w /g,"$& -$&") // boy-boy

"javascript".replace(/script/,"$& != $`") //javascript != java

"javascript" .replace(/java/,"$&$' is ") // javascript is script

2: The second parameter is a function:

It is recommended to use the function method in ECMAScript3, which is implemented in JavaScript1.2. When the replace method is executed, the function will be called every time, and the return value will be used as the new value of the replacement.

Requirements for function parameters:

1. The first parameter is the full text of each match ($&).
2. The middle parameter is the subexpression matching string, the number is not limited. ($i (i:1-99))
3. The penultimate parameter is the matching subscript of the matching text string Location.
4. The last parameter represents the string itself.
This is what this article is going to say about the power of replace. Theoretical things are all dry stuff. We need examples to solve all empty problems:

1: Capitalize the first letter of the string:

Copy code The code is as follows:

String.prototype.capitalize = function(){

return this.replace( /(^|s)([a-z])/g , function(m,p1,p2){ return p1 p2.toUpperCase();

} );

};
console.log("i am a boy !".capitalize())

Output: I Am A Boy!

2: Extract and summarize the scores of the string "Zhang San 56 points, Li Si 74 points, Wang Wu 92 points, Zhao Liu 84 points", calculate the average score and output the average score difference for each person.

Copy code The code is as follows:

var s = "Zhang San 56 points, Li Si 74 points, Wang Wu 92 points, Zhao Liu 84 points";

var a = s.match(/d /g);

var sum = 0;

for (var i = 0 ; i < a.length; i ){

sum = parseFloat(a[i]);

}



var avg = sum / a.length;



function f(){

var n = parseFloat(arguments[1]);

return n "points" "(" ((n > avg) ? ("Above average score" (n - avg)) :

                                                                                                         points)";

}



var result = s.replace(/(d )fen/g, f);

console.log (result);

Output:

Zhang San scored 56 points (20.5 points below the average), Li Si 74 points (2.5 points below the average), Wang Wu 92 points (15.5 points above the average), and Zhao Liu 84 points (7.5 points above the average) points)

                                                                                                                                                                JavaScript’s replace function coupled with the advanced application of regularity, JavaScript’s replacement will bring back greater power, and we will not go into the advanced application assertions of regularity here.

Source: http://www.cnblogs.com/whitewolf/

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn